本篇整理个人以前笔记,有不足之处还望指出。
抽象类和接口
接口和抽象类的相同特征:
两者都不能实例化。它们都位于继承树的顶端,用于被其他类实现和继承。
两者都可包含抽象方法,留待子类去实现。
接口和抽象类的差别:
接口类似于整个系统的总纲,它制定了系统各模块应遵循的标准。因此一个系统中的接口不应该经常改变。
抽象类作为系统中多个子类的父类,体现的是一种模板式设计。其相当于系统实现过程的中间产品,已有部分实现,但须进一步完善。
接口里只能包含抽象方法,而抽象类可以同时包含抽象方法和普通方法。
接口里不能定义静态方法,抽象类里可以。
接口里只能定义静态常量 Field,不能定义普通 Field;抽象类里二者均可定义。
接口里不包含构造器,抽象类里可以包含(供其子类调用进行初始化操作)。
接口里不能包含初始化块,抽象类可以。
一个类最多只能有一个直接父类,但可以直接实现多个接口。