java1.8新特性(一)接口的默認方法


一 簡介

   我們通常所說的接口的作用是用於定義一套標准、約束、規范等,接口中的方法只聲明方法的簽名,不提供相應的方法體,方法體由對應的實現類去實現。

在JDK1.8中打破了這樣的認識,接口中的方法可以有方法體,但需要關鍵字static或者default來修飾,使用static來修飾的稱之為靜態方法,靜態方法通過接口名來調用,使用default來修飾的稱之為默認方法,默認方法通過實例對象來調用。 

靜態方法和默認方法的作用:

   靜態方法和默認方法都有自己的方法體,用於提供一套默認的實現,這樣子類對於該方法就不需要強制來實現,可以選擇使用默認的實現,也可以重寫自己的實現。當為接口擴展方法時,只需要提供該方法的默認實現即可,至於對應的實現類可以重寫也可以使用默認的實現,這樣所有的實現類不會報語法錯誤:Xxx不是抽象的, 並且未覆蓋Yxx中的抽象方法。

二 示例

接口:

package com.swpu.newJDk;

public interface DefaultInterface {
   public   int k=10 ;
    void commonMethod();
    default void defaultMethod(){
        System.out.println("接口的默認方法");
    }
    static void staticMethod(){
        System.out.println("接口的靜態方法");
    }
}

測試:

package com.swpu.newJDk;

/**
 * @ClassName Test
 * @Description TODO
 * @Author 王旭龍
 * @Date 2019/9/9 14:53
 */

public class Test {
    public static void main(String[] args) {
//匿名實現類 DefaultInterface defaultInterface
= new DefaultInterface() { @Override public void commonMethod() { System.out.println("以前接口的普通方法,需要重寫"); } }; defaultInterface.commonMethod(); defaultInterface.defaultMethod(); DefaultInterface.staticMethod(); System.out.println(DefaultInterface.k); } }

結果:

結果說明:

 接口里static修飾的staticMethod 的調用時 接口名.方法 不能直接用示例對象調用。用default修飾的方法用實例對象調用,接口的成員變量是 public static final 修飾 直接


免責聲明!

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



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