使用不包含任何抽象方法的抽象类

2022-09-03 17:52:43

抽象类不需要包含任何抽象方法。

除了抽象类无法实例化之外,还有什么其他理由使类抽象化吗?


答案 1

抽象类意味着类的定义不完整,因此无法实例化。即使它没有抽象方法,它也是该类可用于继承的指示器。即使它具有其中所有方法的实现,该实现可能仍然不完整,必须由扩展类重写。


答案 2

抽象类的主要作用是提供适当的根类,从中可以派生出具体的(即非抽象的)子类。这是一个功能强大且用途广泛的功能,可促进代码的重用。抽象类封装了一系列数据类型通用的一般特征 - 这些特征太通用而在抽象类中没有意义,但可以在子类中重写

任何具有抽象方法的类都是自动抽象的,并且必须使用关键字 abstract 来定义自己 - 有趣的是,抽象类不需要包含任何抽象方法

抽象类无法实例化 - 换句话说,您不能创建抽象类的实例(对象)

即使抽象类的对象无法实例化,也可以声明对抽象类对象的引用,例如帐户 a ;不会生成语法错误

如果抽象类的子类重写,即在其超类中提供每个抽象方法的实现,则该子类称为具体类,并且可以创建子类的对象

如果抽象类的子类不重写(实现)它继承的所有抽象方法,则该子类本身也是抽象的,必须声明为抽象。


推荐