【Java 8實戰】Extension Methods

一隻小小鳥發表於2019-01-19

介面的定義

1.JDK1.6中介面的定義
/*定義一個公式介面*/
public interface Formula6 {
    double calculate(int a);
}
2.JDK1.8中介面的定義
/*定義一個公式介面*/
public interface Formula8 {

    double calculate(int a);

    default double sqrt(int a) {
        return Math.sqrt(a);
    }
}

在JDK1.8中稱 default double sqrt(int a) 為 extension methods;

介面的使用

public static void main(String[] args) {

        Formula8 formula8 = new Formula8() {
            @Override
            public double calculate(int a) {
                return a * a;
            }
        };

        double a = formula8.calculate(2);
        double b = formula8.sqrt(25);
        System.out.println(a + "_" + b); //4.0_5.0
    }

相關文章