1、介面的簡介
介面可以看作是更「純粹」的抽象,為類定義了其形式:方法名、引數列表、返回型別,但是沒有方法體。介面也可包含資料成員,這些資料成員隱含的都是static和final。
只有介面可以被「多重繼承」,介面並不占用記憶體空間,所以避免了c++中多重繼承的諸多煩惱。
2、介面的作用
(1)用來建立類與類之間的協議,或者說是模組與模組、子系統與子系統等等之間的協議;
(2)用來實現類似於c++的「多重繼承」——乙個類可以實現多個介面,使得實現類能夠向上轉型為不止乙個基型別。
(3)可用來方便地定義靜態常量。
3、選擇介面還是抽象類?
如果要建立不帶任何方法定義和成員變數的基類,那麼應該選擇介面;
只有在基類強制需要方法定義和成員變數的時候,才選擇抽象類。
4、介面的應用
我們常常說「面向介面的程式設計」,其實就是將介面與具體實現分離,將「做什麼」和「怎麼做」分離,這樣,我們可以在不同的情況中更換具體的實現,而不會影響介面的使用者,從而隔離了變化。
介面常常用在需要互動的兩個模組、子系統、系統之間,用以保證內部的變化不會影響外部的呼叫者。
另外,在某些情況下,也可以使用介面來統一各個待呼叫的類的型別(這些類都實現同乙個介面),從而實現乙個統一的處理方式。
對於介面的使用,要注意遵循「介面隔離原則」——不應該強迫客戶依賴於它們不用的方法。
這個說法類似於頁面上的許可權控制:使用者無權操作的選單,應該隱藏起來,不讓使用者看到。
如果乙個類的介面被多種使用者呼叫,且各個使用者需要呼叫的方法集各不重合,那麼就需要對這個介面進行分解,使得每個使用者只能看到自己需要的那部分介面,從而解除了客戶程式與它們不需要的介面之間的耦合,也解除了使用者程式之間的耦合。
Java介面繼承介面
直接先上 package practice public inte ce a package practice public inte ce b extends a package practice public class c implements b override public void g...
Java語言基礎 抽象類和介面
1.乙個類中的方法如果只有宣告沒有實現,則稱為抽象方法,必須用abstract修飾之 乙個有抽象方法的類稱為抽象類,也必須用abstract修飾之,但抽象類可以沒有抽象方法 抽象類不能被建立 抽象類 abstract class a 沒有抽象方法的抽象類 abstract class b publi...
java 介面繼承介面作用
inte ce a extends inte ce b 介面a繼承介面b作用 1.介面a中不用重寫介面b中方法 2.介面a的實現類必須實現介面a中定義的方法以及介面b中定義的方法。在例項化此實現類過程中恰恰體現了多型的特性,例項化物件可呼叫介面a b中所有方法。public inte ce inte...