抽象类的使用
abstract 抽象的
抽象类的特征:
- 在 java 中采用 abstract 关键字定义的类就是抽象类,采用 abstract 关键字定义的方法就是抽象方法。
- 抽象方法只需在抽象类中提供声明,不需要实现(没有方法体) 。
- 如果一个类中含有抽象方法,那么这个类必须定义成抽象类。
- 如果这个类是抽象的,那么这个类被子类继承,抽象方法必须被重写。如果在子类中不重写该抽象方法,那么子类也必须是抽象类。
- 抽象类是不能实例化的,即不能 new 一个对象。
- 抽象类不能被 final 修饰
- 抽象方法不能被 final 修饰,因为抽象方法就是被子类实现的。
- 抽象类中可以包含非抽象方法以及方法实现,可以将一些公共的代码放到抽象类中。
------------------------------------------------------
案例一:创建抽象类
子类继承抽象父类后,必须覆盖抽象方法,否则编译报错
案例二:子类也是抽象类,则不需要覆盖父类的抽象方法
但是最终继承抽象类的非抽象类必须重写祖辈所有的抽象方法
案例三:不能使用 final 修饰抽象类,这是矛盾的
案例四:不能使用 final 修饰抽象方法,这也是矛盾的
案例五:抽象类中可以没有抽象方法
案例六:抽象类不能被实例化