接口
接口就是一種公共的規范標准。
只要符合規范標准,就可以大家通用。
接口就是多個類的公共規范。
接口是一種引用數據類型,最重要的內容就是其中的:抽象方法。
如何定義一個接口的格式
如何定義一個接口的格式: public interface 接口名稱{ //接口內容 }
備注:換成了關鍵字interface之后,編譯生成的字節碼文件仍然是:
.java -->.class
接口包含的內容
如果是Java 7,那么接口中可以包含的內容有:
1.常量
2.抽象方法
如果是Java 8,還可以額外包含有:
3.默認方法
4.靜態方法
如果是Java 9,還可以額外包含有:
5.私有方法
接口中的抽象方法的調用
在任何版本的Java中,接口都能定義抽象方法。
格式: public abstract 返回值類型 方法名稱(參數列表);
注意事項:
- 接口當中的抽象方法,修飾符必須是兩固定的關鍵字:public abstract
- 這兩關鍵字修飾符,可以選擇性的省略。
- 方法的三要素,可以隨意定義。
接口使用步驟
1.接口不能直接使用,必須有一個“實現類”來“實現”該接口。
格式: public class 實現類名稱 implements 接口名稱{ // 。。。 }
2.接口的實現類必須覆蓋重寫(實現)接口中所有的抽象方法。
實現:去掉abstract關鍵字,加上方法體大括。
3.創建實現類的對象,進行使用。
注意事項:
如果實現類並沒有覆蓋重寫接口中的所有的抽象方法,那么這個實現類自己就必須是抽象類。
在Java 9+版本中,接口的內容可以有
1.成員變量其實就是常量,
格式: [public] [static] [final] 數據類型 常量名稱 = 數據值;
注意:
- 常量必須進行賦值,而且一旦賦值不能改變。
- 常量名稱完全大寫,用下划線進行分隔。
- 【方法可以覆蓋重寫】
- 【常量不可以覆蓋重寫】
2,接口中最重要的就是抽象方法,
格式: [public] [abstract] 返回值類型 方法名稱(參數列表);
注意:
- 實現類必須覆蓋重寫(實現)接口中所有的抽象方法。除非實現類是抽象類。
3.從Java 8開始,接口里允許定義默認方法。
格式: [public] defaul 返回值類型 方法名稱(參數列表){ 方法體 }
注意:
- 默認方法也可以被覆蓋重寫
備注:
- 接口當中的默認方法,可以解決接口升級的問題。
4.從Java 8開始,接口里允許定義靜態方法。
格式: [public] static 返回值類型 方法名稱(參數列表){ 方法體 }
注意:
- 應該通過接口名稱進行調用,不能通過實現類對象調用接口靜態方法
5.從Java 9開始,接口允許定於私有方法。
格式: 普通私有方法:private 返回值類型 方法名稱(參數列表){ 方法體 } 靜態私有方法:private static 返回值類型 方法名稱(參數列表){ 方法體 }
注意:
- private的方法只有接口自己才能調用,不能被實現類或別人使用。
接口之間的多繼承
- 類與類之間是單繼承的。直接父類只有一個。
- 類與接口之間是多實現的。一個類可以實現多個接口。、
- 接口與接口之間是多繼承的。
注意事項:
- 多個父接口當中的抽象方法如果重復,沒關系。
- 多個父接口當中的默認方法如果重復,那么子接口必須進行默認方法的覆蓋重寫。【而且帶有defaul關鍵字】