一.接口java
一、接口的語法
訪問修飾符 interface 接口名{
主體;
}
二、接口中包含哪些內容
1) 公共常量 ==》 public static final 數據類型 常量名=值;
public static final 能夠省略;
2)公共抽象方法 ==》 public abstract 返回值類型 方法名(參數列表);
public abstract能夠省略。
3)注: 以上是JDK8以前,JDK8有所變化
新增兩種方法 :
默認方法 : public default 返回值類型(參數列表){方法體}
靜態方法 : public static 返回值類型(參數列表){方法體}
三、接口的應用編程
1) 不能new,不能實例化。對象
2) 找一個類實現接口。實現:implements: 格式:public clsss 類名 implements 接口名{ }繼承
3) 並在實現類(實現接口的類)中要對抽象方法給出實現。方法重寫。接口
4) 接口也支持多態。接口類型 接口引用 = new 實現類();生命週期
5) 接口之間能夠繼承,並且能夠多繼承。開發
6) java只支持單一繼承,但能夠多實現。class 類名 implements 掊口名,接口名{ }class
7) 一個類能夠同時繼承於一個父類和實現多個接口。class 類名 extends 父類 implements 接口{}
四、面向接口編程
1)針對接口(抽象)編程,不針對實現類編程
2) 知足:開-閉原則進行開發。
3) 程序可擴展性強,易維護
4)接口和實現分離了,適於團隊的協做開發
5)實現鬆散耦合的系統,便於之後升級,擴展。變量
二.抽象類與接口的區別擴展
一、抽象類和接口的區別
1)、相同點:
抽象類和接口都不能實例化對象
抽象類的子類和接口的實現類都實現抽象類或接口中的抽象方法
2)、不一樣點:
2.1)、interface須要實現,要用implements,而abstract class須要繼承,要用extends。
2.2)、一個類能夠實現多個interface,但一個類只能繼承一個abstract class。
2.3)、interface強調特定功能的實現,而abstract class強調所屬關係。
2.4)、抽象類是由多個子類抽象而得。而接口是多個方法的抽象
三.類之間的關係
一、泛化關係 :類與類之間的繼承關係 ,接口之間的繼承關係
二、實現關係 :類實現接口,重寫接口中的方法
三、關聯關係 :QQ用戶和QQ好友 平等的關係。 在QQ用戶類中有一個屬性好友的屬性
四、聚合關係 : 總體和部分之間各有本身獨立的生命週期 汽車 :發動機
五、組合關係 :強聚合關係(總體和部分) 部分依賴於總體的生命週期。 身體:四肢
六、依賴關係 : 弱關聯關係 表示:一個類在另外一個類的方法中出現(參數,返回值,局部變量)
四.is-a,has-a,like-a區別
A 和 B 爲兩個類
1.is-a就是說: 一個對象是另外一個對象的一個子類。
A is-a B 表示 A繼承於B(只繼承未添加新方法);
A is-like-a B 表示 A繼承於B(添加了新方法);
2.has-a表明類和它的成員之間的關聯關係。這有助於代碼的重用和減小代碼的錯誤。
A has-a B 表示 A 中使用了 B 類的對象