Java8 接口默认方法和静态方法

  

当我们在定义接口时,可能会希望在接口中提供一些默认实现,这样我们在实现该接口时可以选择性地重写它们,也可以直接继承实现。Java 8 引入了接口默认方法和静态方法来实现这个目的。

接口默认方法

接口默认方法是 Java 8 新增的特性,可以直接在接口中实现方法。这些方法会被自动继承到实现该接口的所有类上。

语法格式:

public interface 接口名称 {
    public default 返回值类型 方法名称(参数列表) {
        // 方法体
    }
}

下面是一个示例:

public interface Vehicle {
    default void print() {
        System.out.println("I am a vehicle!");
    }
}

public class Car implements Vehicle {
    public static void main(String[] args) {
        Car car = new Car();
        car.print(); // 输出:I am a vehicle!
    }
}

在上面的示例中,我们在 Vehicle 接口中定义了一个默认方法 print(),它会被自动继承到 Car 类上。在 Car 类中,我们只需要调用 print() 方法即可。

接口静态方法

接口静态方法是 Java 8 新增的另一个特性,可以定义一个静态方法,该方法不依赖于实现接口的任何实例。这些方法可以直接通过接口名称来调用。

语法格式:

public interface 接口名称 {
    public static 返回值类型 方法名称(参数列表) {
        // 方法体
    }
}

下面是一个示例:

public interface Calculation {
    public static int add(int a, int b) {
        return a + b;
    }
}

public class Test {
    public static void main(String[] args) {
        int result = Calculation.add(5, 3);
        System.out.println(result); // 输出:8
    }
}

在上面的示例中,我们在 Calculation 接口中定义了一个静态方法 add(),可以直接通过接口名称来调用该方法。

总结一下,Java 8 引入了接口默认方法和静态方法来提供接口的默认实现,大大提高了接口的易用性和灵活性。

相关文章