Java面向對象(五)

一.接口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 類的對象

相關文章
相關標籤/搜索