一、接口
接口是多個類的公共規範,是一種引用數據類型。
//定義格式:
public interface 接口名稱{
接口內容
}
接口中包含的內容:
1、成員變量。其實就是常量 格式如下:
[public] [static] [final]數據類型 常量名稱=數據值。
常量必須進行賦值,而且在賦值之後不能被改變,常量的名稱必須用大寫而且用下劃線進行分割。
2、抽象方法。接口中組重要的部分。 格式如下:
[public][abstract] 返回值類型 方法名稱(參數列表);
實現類必須覆蓋重寫接口所有的抽象方法,除非實現類是抽象類。
3、Java8開始,接口允許定義默認方法。 格式如下:
[public] default 返回值類型 方法名稱(參數列表){ 方法體 }
默認方法也可以覆蓋重寫
4、Java8開始,接口允許定義靜態方法, 格式如下:
[pulbic] static 返回值類型 方法名稱(參數列表){ 方法體 }
通過接口名稱進行調用,不能通過實現類對象調用接口靜態方法。
5、Java9開始,接口允許定義私有方法 格式如下:
//普通私有方法 private 返回值類型 方法名稱(參數列表){ 方法體 } //靜態私有方法 private static 返回值類型 方法名稱(參數列表){ 方法體 }
private的方法只有接口自己才能使用,不能被實現類或別人使用。
使用接口的注意事項:
1)、接口是沒有靜態代碼塊或者構造方法的
2)、一個類的直接父類是唯一的,但是一個類可以同時實現多個接口
3)、如果實現類所有的多個接口當中,存在重複的抽象方法,只需要覆蓋重寫一次即可
4)、如果實現類沒有覆蓋重寫所有接口當中的抽象方法,那麼這個類必須是一個抽象類
5)、如果實現類所實現的所有接口當中,存在重複的默認方法,那麼實現類一定要對沖突的默認方法進行覆蓋重寫
6)、一個類如果直接父類當中的方法和接口當中的方法產生了衝突,優先用父類當中的方法
二、抽象類
*抽象方法,就是普通加上abstract關鍵字,然後去掉大括號,直接分號結束abstract ovid method();
*抽象類:抽象方法所在的類必須是抽象類
注意事項:
1、抽象類使用abstract修飾;
2、抽象類不能實例化,即不能使用new關鍵字來實例化對象;
3、含有抽象方法(使用abstract關鍵字修飾的方法)的類是抽象類,必須使用abstract關鍵字修飾;
4、抽象類可以含有抽象方法,也可以不包含抽象方法,抽象類中可以有具體的方法;
5、如果一個子類實現了父類(抽象類)的所有抽象方法,那麼該子類可以不必是抽象類,否則就是抽象類;
6、抽象類中的抽象方法只有方法體,沒有具體實現;