抽象类(abstract class)
抽象类时用雷模型化那些父类无法确定全部实现,而是由其子类提供的具体实现的对象的类。
abstact :可以用来修饰类、方法
1、修饰类:抽象类
1)不可被实例化
2)抽象类有构造器(凡是类都有构造器)
3)抽象方法在的类一定是抽象类
4)抽象类可以没有抽象方法
2、修饰方法:抽象方法
1)格式:没有方法体(包括大括号),如:
public abstract void eat();
2)抽象方法只能保留方法的功能,二聚体的执行,交给继承抽象类的子类,有子类重写此抽象类。
3)若子类继承抽象类,并重写了所有的抽象方法,则此类是一个“实体类”,既可以实例化
4)若子类继承抽象类,没有重写所有的抽象方法,意味着此类中还有抽象方法,则此类必须说明为抽象类。
不能使用abstract修饰属性,私有方法、构造器、静态方法和final的方法。
1)构造器不能重写
2)属性不能被子类覆盖
3)私有方法子类中不能覆盖或者重写。
4)final方法不能被重写
5)static方法可以通过类来调用,abstract定义的方法的方法体是空,调用没有意义。
3、模板方法收集模式(TemplateMethod)
抽象类体香的就是一个模板模式的实际,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造。但是子类字体上会保留抽象类的行为方式。