【Java】接口和抽象類

一、接口 

        接口是多個類的公共規範,是一種引用數據類型。

//定義格式:
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、抽象類中的抽象方法只有方法體,沒有具體實現;

      

參考鏈接:https://www.jianshu.com/p/c4f023d02f0c

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章