一、抽象类的介绍
抽象类
what?
当用 一个 abstract 关键字来修饰一个类时,这个类就被称为 ==抽象类==
how?
1 | 修饰符 abstract 类名{ |
抽象方法
what?
当用 一个 abstract 关键字来修饰一个方法时,这个类就被称为 ==抽象方法==
二、抽象类的注意事项
抽象类的 ==抽象方法一定要被子类实现==or==子类也是抽象类==。
抽象类不能被实例化
有抽象方法的类一定是抽象方法,但抽象类不一定有抽象方法。
abstract 只能修饰类和方法
抽象类可以有类的任何成员。==【其本质还是类】==
抽象方法不能有方法主体
抽象方法不能使用 private、final 和 static 来修饰。
private :子类无法访问改父类方法,也就无法完成对此方法进行重写。
final 修饰的方法不能被重写,但在子类中必须对抽象方法进行重写。
static :静态方法本身就不能被覆盖
重写是子类对==父类的允许访问的方法==的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
三、应用
1. 模块设计模式
需求:
答案:
1. 写一个父类。然后让 dojob 方法成为抽象方法,子类实现它,并在里面写子类做的事情
1 | abstract class test{ |
2.子类
1 | class bbb extends test{ |