抽象类(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)

抽象类体香的就是一个模板模式的实际,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造。但是子类字体上会保留抽象类的行为方式。


本文转载:CSDN博客