標籤:java interface 介面
介面
介面中的成員修飾符是固定的
1,全域常量:public staticfinal
2,抽象方法:public abstract
介面中的成員都是公用的許可權。
類與類之間是繼承關係,類與介面之間是實現關係。
介面不可以執行個體化
只能有實現了介面的子類並覆蓋了介面中所有的抽象方法後,該子類才可以執行個體化。否則,這個子類就是一個抽象類別。
調用介面的常量時,介面名,介面的子類名,子類的對象都可以進行調用。
在java中不直接支援多繼承,因為會出現調用的不確定性。
所以java將多繼承機制進行改良,在java中變成了多實現。
//下面是一個介面實現有問題例子。
interface aa{ public void show();}interface bb{ public int show();}class Imp implements aa,bb{ public void show(){}public int show(){}//這裡會有二義性}
錯誤: Imp 不是抽象的,並且未覆蓋 bb 中的抽象方法 show()
Imp 中的 show() 無法實現 bb 中的 show();正在嘗試使用不相容的傳回型別
一個類在繼承另一個類的同時,還可以實現多個介面。介面的出現避免了單繼承的局限性。
介面的特點
介面是對外暴露的規則
介面是程式的功能擴充
介面的出現降低耦合性
介面可以用來多實現
類與介面之間是實現關係,而且類可以繼承一個類的同時實現多個介面。
介面與介面之間可以有繼承關係,並且可以是多繼承關係。
介面和抽象類別的異同點
相同點:都是不斷向上抽取而來
不同點:
1,抽象類別需要被繼承,而且只能單繼承
介面需要被實現,而且可以多實現
2,抽象類別中可以定義抽象方法和非抽象方法,子類繼承後,可以直接使用非抽象方法
介面中只能定義抽象方法,必須由子類去實現。
3,抽象類別的整合是is a關係,在定義該體系中的基本共性內容
介面的實現是like a關係,在定義體系的額外功能。
java語言中的介面概述