與使用抽象類相比,使用介面的優點包括:
1.類更容易宣告執行新的介面
2.介面更容易定義mixin,如同乙個類可以實現comparable、iterable介面。在排序時,此類可視為comparable型別,在迭代時,此類可視為iterable型別
3.介面允許定義非層次化的型別框架,如乙個人可以同時為歌手和作曲家,那麼可讓person類同時實現singer和songwriter介面,而singer和songwriter介面直接沒有任何層次關係
使用介面的缺點:
1.直接繼承抽象模擬實現介面更簡單
2.一旦介面被發布並且被廣泛實現,後期更改介面幾乎是不可能的(可能很多實現類都需要進行修改)
使用介面建議:
1.在發布界面前進行廣泛的測試和討論
2.介面僅用於定義型別,不要用於定義常量。如以下**可能給使用者造成疑惑,並且不能避免使用者實現此介面:
注:可使用列舉,靜態工具類提供常量
//never do this
public inte***ce badinte***ce
3.在發布介面時,建議同時提供簡單實現類或骨架實現類(skeleton),如以下介面:
public inte***ce icontainer
可提供乙個簡單實現類:
public class ******container implements icontainer
public void remove(string e)
}
也可提供乙個抽象的骨架實現類:
public abstract class abstractcontainer implements icontainer
public static icontainer getcontainer(final string strs)
@override
public void add(string e)
};}
4 18 4 19 模組與包
模組 一系列功能的集合體 定義模組 建立乙個py檔案就是乙個模組,該py檔名就是模組名。使用模組 在要使用模組的檔案中,通過import模組名來匯入模組。import moudle 1.編譯執行模組對應的py檔案,形成對應的pyc檔案 2.產生該模組自己的全域性命名空間 3.在使用該模組的全域性命名...
介面使用 (JAVA
介面使用 題目描述 建立乙個名稱為vehicle的介面。在介面中新增兩個方法start 和stop 在兩個名稱分別為bike和bus的類中實現vehicle介面。建立乙個名稱為main的類,在main的main 方法中建立bike和bus物件,並訪問start 和stop 方法。如下 你的 將被嵌入...
介面的使用
由於c 類不能多重繼承。但現實有許多多重繼承的情況。為了避免傳統多重繼承帶來的複雜性問題和滿足多重繼承的需要,就提出了介面的概念。介面提出了一種規範,讓使用介面的程式設計人員要遵守其提出的約定。c 中申明介面時,使用關鍵字inte ce。using system using system.colle...