JAVA_接口_默認方法&靜態方法


 

1.小結(注意):

  1.接口中無法定義成員變量,但是可以定義常量,其值不可以改變,默認使用public static final修飾

  2.接口中,沒有構造方法,不能創建對象

  3.接口中,沒有靜態代碼塊

  4.可以繼承,可以重寫,二選一,但是只能通過實現類的對象來調用

  5.接口可以多實現

  6.默認方法和靜態方法JDK8版本才出的.

  7.接口中抽象方法使用abstract關鍵字修飾,可以省略,沒有方法體,該方法供子類實現使用.

  8.靜態與.class文件相關,只能使用接口名調用,不可以通過實現類的類名或者實現類的對象調用

  9. 一個接口能繼承另外一個或者多個接口,這和類之間的繼承比較相似,接口的繼承使用extends關鍵字,子接口繼承父接口的方法.如果父接口中的默認方法有重名的,那么子接口需要重寫一次

 

2.接口

  接口,是java語言中一種引用類型,是方法的集合,如果說類的內部封裝了成員變量,構造方法,成員方法,那么接口的內部主要就是封裝了方法,包含抽象方法(JDK7以前),默認方法和靜態方法(JDK8).

  接口的定義,它與定義類方式相似,但是使用interface關鍵字.它也會被編譯成.class文件,但一定要明確它不是類,而是另外一種數據類型.

 

  引用數據類型:數組,類,接口

 

  接口的使用,他不能創建對象,但是可以被實現(implements,類似於被繼承),一個實現接口的類,(可以看做是接口的子類),需要實現接口中所有的抽象方法,創建該類對象,就可以調用方法了,否則它必須是一個抽象類

  定義格式:

public interface Inter {
    //抽象方法,默認省略public abstract
    public abstract void method1();
    //默認方法
    public default void method2(){
        //方法體
    }
    //靜態方法
    public static void method3(){
        //方法體
    }
}

 

 

 

  接口可以多實現

3.抽象方法

  抽象方法使用abstract關鍵字修飾,可以省略,沒有方法體,該方法供子類實現使用.

4.默認方法

  使用default修飾,不可省略,供子類調用或者子類重寫

  可以繼承,可以重寫,二選一,但是只能通過實現類的對象來調用

  接口中,有多個默認方法時,實現類都可繼承使用,如果繼承方法有重名的,必須重寫一次

 

 

5.靜態方法

  使用static修飾,供接口直接調用

  靜態與.class文件相關,只能使用接口名調用,不可以通過實現類的類名或者實現類的對象調用

 

6.實現:

  類與接口的關系為實現關系,即類實現接口,該類可以成為接口的實現類,也可以成為接口的子類,實現的動作類似繼承,格式相仿,只是關鍵字不同,實現使用implements關鍵字

 

  非抽象子類實現接口:

    1.   必須重寫接口中的所有的抽象方法,
    2.   繼承了接口的默認方法,即可以直接調用,也可以重寫

 

  接口中,存在同名的靜態方法並不會沖突,原因是只能通過各自接口名訪問靜態方法

 

7.優先級問題:

  當一個類,既繼承了一個父類,又實現多個接口,父類中的成員方法與接口中的默認方法重名,子類就近選擇執行父類的成員方法

 

 

8.接口的多繼承:

  一個接口能繼承另外一個或者多個接口,這和類之間的繼承比較相似,接口的繼承使用extends關鍵字,子接口繼承父接口的方法.如果父接口中的默認方法有重名的,那么子接口需要重寫一次

 

 

9.其他:

  1.接口中無法定義成員變量,但是可以定義常量,其值不可以改變,默認使用public static final修飾

  2.接口中,沒有構造方法,不能創建對象

  3.接口中,沒有靜態代碼塊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM