標籤:interface 模組化 繼承 size 一個 沒有 優點 程式設計 定義
一、介面概述
介面是功能的集合,同樣可看做是一種資料類型,是比抽象類別更為抽象的”類”。
介面只描述所應該具備的方法,並沒有具體實現,具體的實現由介面的實作類別(相當於介面的子類)來完成。這樣將功能的定義與實現分離,最佳化了程式設計。
格式:與定義類的class不同,介面定義時需要使用interface關鍵字。
定義介面所在的仍為.java檔案,雖然聲明時使用的為interface關鍵字的編譯後仍然會產生.class檔案。
這點可以讓我們將介面看做是一種只包含了功能聲明的特殊類。
public interface 介面名{
抽象方法
}
(1)介面中的方法全是抽象方法,直接new介面來調用方法沒有意義,Java也不允許這樣幹
(2)類與介面的關係為實現關係,即類實現介面。實現的動作類似繼承,只是關鍵字不同,實現使用implements
(3)其他類(實作類別)實現介面後,就相當於聲明:”我應該具備這個介面中的功能”。實作類別仍然需要重寫方法以實現具體的功能。
二、介面中成員的特點
A:類與類之間:繼承關係,一個類只能直接繼承一個父類,但是支援多重繼承
B:類與介面之間:只有實現關係,一個類可以實現多個介面
C:介面與介面之間:只有繼承關係,一個介面可以繼承多個介面
三、介面的優點
1.類與介面的關係,實現關係,而且是多實現,一個類可以實現多個介面,類與類之間是繼承關係,java中的繼承是單一繼承,一個類只能有一個父類,打破了繼承的局限性。
2.對外提供規則
3.降低了程式的耦合性(可以實現模組化開發,定義好規則,每個人實現自己的模組,提高了開發的效率)
四、介面和抽象類別的區別
1.共性:
不斷的進行抽取,抽取出抽象的,沒有具體實現的方法,都不能執行個體化(不能建立對象)
2.區別1: 與類的關係
類與介面是實現關係,而且是多實現,一個類可以實現多個介面,類與抽象類別是繼承關係,Java中的繼承是單一繼承,多層繼承,一個類只能繼承一個父類,但是可以有爺爺類
3.區別2: 成員
a.成員變數
抽象類別可以有成員變數,也可以有常量
介面只能有常量,預設修飾符public static final
b.成員方法
抽象類別可以有抽象方法,也可以有非抽象方法
介面只能有抽象方法,預設修飾符 public abstract
c.構造方法
抽象類別有構造方法,為子類提供
介面沒有構造方法
Java--介面