Java接口和抽象类很像,他们有哪些相同点和异同点呢,下面咱们作一个小结设计
① 都不能被实例化,都位于继承树的顶端,用于被实现或者继承
② 均可以包含抽象方法,实现接口或者继承抽象类的普通子类都必须实现这些接口对象
① 接口能够规范调用者能够调用哪些服务(对外),已经如何调用这些服务(方法签名)
② 接口是多个模块之间的耦合标准,当在多个应用程序之间使用接口,接口是应用程序之间的通讯标准继承
③ 抽象类则不一样,做为多个子类的共同父类,体现的是一种模板式设计,能够当成是系统实现过程当中的中间产品
④ 这个中间产品实现了系统的部分功能,可是这个产品依然不能成为最终产品,必须有进一步的完善。接口
⑤ 接口只能包含方法签名,不能提供实现,抽象类则彻底能够实现普通方法
⑥ 接口里不能定义静态方法,而抽象类能够定义静态方法
⑦ 接口里能够定义静态常量Field,可是不能定义普通Field;抽象类则能够定义普通Field和静态常量Field
⑧ 接口里不包含构造器,抽象类则彻底能够包含构造器;抽象类的构造器并非彻底用于建立对象,而是让子类去调用指定构造器完成属于本身的初始化方法
⑨ 接口里不能包含初始化块;但抽象类则彻底能够包含初始化块
⑩ 一个类能够实现多个接口,可是只能继承一个父类产品