Java中接口的內容
-
成員變量其實就是常量:
格式:
[public] [static] [final] 數據類型 常量名 = 常量值
注意:
常量必須進行賦值,而且一旦賦值則不可改變
常量名稱完成大寫,而且用下劃線進行分隔
-
接口中抽象方法的格式:
[public] [abstract] 返回類型 方法名(參數列表);
注意:實現類必須覆蓋重寫接口所有的抽象方法,除非實現類是抽象類
-
從java8 開始,接口中允許定義默認方法,格式:
[public] default 返回值類型 方法名(參數列表){
方法體
}
注意:默認方法也可以被覆蓋重寫(在發生默認方法在多接口中產生衝突時,要進行覆蓋重寫)
-
從java8開始,接口中允許定義靜態方法,格式:
[public] static 返回值類型 方法名(參數列表){ 方法體}
注意:應該通過接口名稱進行調用,不能通過實現類對象進行調用
-
從java9開始,接口中允許定義私有很廣泛,格式:
普通私有方法:private 返回值類型 方法名(參數列表){方法體}
靜態私有方法:private static 返回值類型 方法名(參數列表){方法體}
注意:private的方法只有接口自己可以調用,不能被實現類或別人使用。
接口的注意事項:
6. 接口中沒有靜態代碼塊或者構造方法。
7. 一個類的直接父類是唯一的,但是一個類可以同時實現多個接口
格式:
public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB{
// 覆蓋重新所有的抽象類
}
8. 如果實現類所有的接口中,存在重複的抽象方法,那麼只需要覆蓋重寫一次即可
9. 如果實現類沒有覆蓋重寫所有接口中的抽象方法,那麼這個實現類就必須是抽象類public abstract class ...
10.如果實現類試下的多個接口當中,存在重複的默認方法,那麼實現類一定要對沖突的默認方法進行覆蓋重寫
11. 一個類如果直接父類當中的方法,和接口中的默認方法產生了衝突,優先使用父類當中的方法。