Java8中接口的默認方法

一.簡述

在JDK 8之前,一個接口不能包含任何實現。接口只包含常量和方法簽名。
從JDK 8開始,可以定義接口中方法的默認實現。這些方法稱爲默認方法。

使用關鍵字"default"聲明一個默認方法,它包含一個方法體。
所有實現類接口的默認方法都可用。如果實現類想要使用它,它可以使用它,或者它可以忽略默認實現並創建自己的實現。
即使接口現在可以定義默認方法,如果要創建實例,接口仍然必須由類實現。

二.實現和測試

接口示例:

package insping;

public interface MyInterface {
    int add(int x, int y);

    // 默認方法
    default int multiply(int x, int y) {
        return x * y;
    }
}

上述接口聲明一個抽象方法add()和一個默認方法multiply()。

接着我們來創建一個實現這個接口的類。請注意,實現類只需要實現抽象方法。默認方法可以按原樣使用,除非實現類要更改行爲。

package insping;

public class MyClass implements MyInterface {

    @Override
    public int add(int x, int y) {
        return x+y;
    }

}

上面的MyClass類實現了MyIF接口,並提供了add()方法的實現。

現在,如果我們創建一個MyClass的實例並調用multiply()方法,則將使用默認方法實現.
測試示例:

package insping;


public class Test {

    public static void main(String[] args) {
        MyInterface intRef = new MyClass();

        System.out.println("和 = " + intRef.add(5, 10));

        System.out.println("乘 = " + intRef.multiply(5, 10));
    }
}

結果:

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