abstarct关键字的使用
可以用来修饰类,方法
用来修饰类
- 一旦类被抽象了,就不能被实例化。
- 抽象类中也一定有构造器。
- 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关操作。
用来修饰方法
- 抽象方法只有方法的声明,没有方法体。
- 抽象方法必须在抽象类中定义,反之,抽象类中可以没有抽象方法。
- 若子类想实例化,必须重写父类中的所有抽象方法,如没有重写所有抽象方法,那子类也是抽象类。
- abstract不能用来修饰私有方法,静态方法,final的方法,final的类
应用
抽象类是用来模型化那些父类无法确定全部实现。而是由其子类提供具体实现的对象的类。
匿名子类
匿名子类继承抽象类。
Person P = new Person(){
@Override
public void eat(){}
@Override
public void breath(){}
}
模板方法的设计模式
抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展和改造,但子类总体上会保留抽象类的行为方式。