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

一 簡介

   咱們一般所說的接口的做用是用於定義一套標準、約束、規範等,接口中的方法只聲明方法的簽名,不提供相應的方法體,方法體由對應的實現類去實現。ide

在JDK1.8中打破了這樣的認識,接口中的方法能夠有方法體,但須要關鍵字static或者default來修飾,使用static來修飾的稱之爲靜態方法,靜態方法經過接口名來調用,使用default來修飾的稱之爲默認方法,默認方法經過實例對象來調用。 測試

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

   靜態方法和默認方法都有本身的方法體,用於提供一套默認的實現,這樣子類對於該方法就不須要強制來實現,能夠選擇使用默認的實現,也能夠重寫本身的實現。當爲接口擴展方法時,只須要提供該方法的默認實現便可,至於對應的實現類能夠重寫也能夠使用默認的實現,這樣全部的實現類不會報語法錯誤:Xxx不是抽象的, 而且未覆蓋Yxx中的抽象方法。spa

二 示例

接口:3d

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("接口的靜態方法");
    }
}

測試:code

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 修飾 直接blog

相關文章
相關標籤/搜索