📜  Java接口中的所有方法都是抽象的吗?(1)

📅  最后修改于: 2023-12-03 15:32:03.491000             🧑  作者: Mango

Java接口中的所有方法都是抽象的吗?

在Java中,接口是一种特殊的抽象类,它只定义了方法的签名而没有实现。接口可以被类实现,实现类必须实现接口中定义的所有方法。因为接口没有实现,所以它的方法都是抽象的。但是,从Java 8开始,接口中也可以有默认方法和静态方法。默认方法有默认实现,实现类可以不实现它,而是使用默认实现。静态方法是接口的类方法,可以直接通过接口名称调用。

代码示例
// 定义一个接口
public interface MyInterface {

    // 定义一个抽象方法
    void abstractMethod();

    // 定义一个默认方法
    default void defaultMethod() {
        System.out.println("This is a default method.");
    }

    // 定义一个静态方法
    static void staticMethod() {
        System.out.println("This is a static method.");
    }

}

// 实现接口
public class MyClass implements MyInterface {

    // 实现抽象方法
    public void abstractMethod() {
        System.out.println("This is a abstract method.");
    }

    // 使用默认方法
    public void useDefaultMethod() {
        defaultMethod();
    }

}

// 调用静态方法
MyInterface.staticMethod();
结论

Java接口中的所有方法默认都是抽象的,但是从Java 8开始,接口中也可以拥有默认方法和静态方法。如果一个类实现了一个接口,它必须实现接口中的所有抽象方法,但不必实现默认和静态方法。