抽象概述
-
定义
在某些情况下,我们需要定义一个超类,来声明给定抽象的一个结构,而不需要提供具体方法的实现,也就是超类只定义一个泛化的形式,泛化的形式由所有的子类共享,并且子类填充具体的细节。设计抽象的目的就是让子类去实现。
-
使用场景
所有子类继承父类后都会重写父类的方法。
抽象类和抽象方法
-
抽象类自己不能有对象,即不能用new操作符直接实例化一个抽象类。只能通过使用一个具体类来继承抽象类,并且实例化这个具体类。
-
抽象类里并非所有方法都是抽象方法,也可以有一些具体的成员方法。
-
抽象方法没有方法体
抽象类的规则1
-
抽象类里可以有0个,1个,多个抽象方法。也就是抽象类里也可以没有抽象方法。
-
抽象方法只能存在于抽象类里,不能在普通类里。
抽象类的规则2
在构造方法中初始化
抽象类的规则3
- 除非子类也是抽象类,那可以自由选择重写抽象父类的抽象方法的个数。如果子类是普通子类,则必须重写抽象父类的所有抽象方法。