一.抽象類和接口的差別,主要注意接口的特殊性
A:成員差別
抽象類:
成員變量:可以變量,也可以常量
構造方法:有
成員方法:可以抽象,也可以非抽象
接口:(在JDK8之後,成員方法可以用default和static修飾)
成員變量:隻可以常量 //預設修飾符:public static final
成員方法:隻可以抽象 //預設修飾符:public abstract
B:關系差別
類與類
繼承,單繼承
類與接口
實作,單實作,多實作
//多實作eg: class Son implements Father,Mother {}
接口與接口
繼承,單繼承,多繼承
//多繼承eg: interface Sister extends Father,Mother {}
C:設計理念差別
抽象類 被繼承展現的是:”is a”的關系。抽象類中定義的是該繼承體系的共性功能。
接口 被實作展現的是:”like a”的關系。接口中定義的是該繼承體系的擴充功能。