这是关于 abstract classes 的 MSDN 文章,但我真的不明白...
我什么时候应该真正使用抽象类?使用抽象类有什么好处?
最佳答案
当您出于继承和多态性的目的需要一个类时,抽象类很有用,但是实例化类本身是没有意义的,只有它的子类。当你想为一组共享一些公共(public)实现代码的子类定义一个模板,但你又想保证不能创建父类(super class)的对象时,通常使用它们。
例如,假设您需要创建狗、猫、仓鼠和鱼对象。它们具有相似的属性,例如颜色、大小、腿的数量以及行为,因此您可以创建一个 Animal 父类(super class)。但是,动物是什么颜色的? Animal 对象有几条腿?在这种情况下,实例化 Animal 类型的对象没有多大意义,而只是实例化其子类。
抽象类在多态性方面也有额外的好处——允许您使用(抽象)父类(super class)的类型作为方法参数或返回类型。例如,如果您有一个带有 train() 方法的 PetOwner 类,您可以将其定义为接收 Animal 类型的对象,例如train(Animal a) 而不是为 Animal 的每个子类型创建一个方法。
关于c# - 什么时候使用抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2570814/