抽象类:类的设计应该确保父类包含它的子类的共同特征。有时候,一个父类设计的非常抽象,以至于它都没有任何具体的实例。这样的类称为抽象类。类名前使用abstract
抽象方法:父类中的方法,因为父类为抽象,无法根据具体的实例进行实现,因此,这样的方法属于抽象方法。方法头使用abstract
UML中抽象类和抽象方法的名字用斜体表示:
抽象类不能使用new创建实例。抽象方法只有定义而没有实现。它的实现由子类提供。一个包含抽象方法的类必须声明为抽象类。
抽象类的构造方法定义为protected,因为它只被子类使用。创建一个具体的子类的实例时,它的父类的构造方法被调用以初始化父类中定义的数据域。
关于抽象类的几个关注点:
接口:
接口只包含常量和抽象方法,它的目的是指明多个对象的共同行为。
类和接口之间的关系称为接口继承(interface inheritance)。
下面是接口、类、继承、实现的举例:
监听器:能够处理按钮上的动作事件的对象。 按钮是动作来源的源对象(source object)
Cloneable接口:
创建一个对象拷贝。
浅复制和深复制:
接口和抽象类的区别: