使用没有任何抽象方法的抽象类

gif*_*pif 13 java abstract-class abstract

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

除了抽象类无法实例化这一事实之外,还有其他原因使类抽象化吗?

Ank*_*hag 9

抽象类意味着类的定义不完整,因此无法实例化.尽管它没有抽象方法,但它表明该类可用于继承.尽管它具有其中所有方法的实现,但实现可能仍然不完整,并且必须由扩展类覆盖.


Ush*_*ani 6

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

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

抽象类不能被实例化——换句话说,你不能创建抽象类的实例(对象)

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

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

如果抽象类的子类没有覆盖(实现)它继承的所有抽象方法,则该子类本身也是抽象的,必须如此声明