📜  Java-接口(1)

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

Java 接口

在 Java 编程语言中,接口(Interface)是一种抽象的参考类型。它是一组抽象方法的集合,没有实现任何方法的代码。Java 接口可用于实现多继承、实现多态性和定义规范等。

定义接口

接口使用 interface 关键字来定义。以下是一个简单的接口示例:

public interface MyInterface {
    void myMethod(); // 抽象方法
}

在接口中,我们可以声明方法但不实现它们。接口中的方法默认为公共(public)和抽象(abstract),可以省略这些关键字。接口也可以包含常量和默认方法的定义。

实现接口

要实现接口,类需要使用 implements 关键字,然后实现接口中的所有方法。一个类可以实现多个接口。以下示例展示了一个类如何实现接口:

public class MyClass implements MyInterface {
    public void myMethod() {
        // 方法实现
    }
}

在实现接口时,必须提供接口中的所有方法的实现,否则类将被标记为抽象类。

接口的多继承

Java 接口允许多继承,一个类可以实现多个接口。这使得接口成为实现多态性的强大工具。

public interface InterfaceA {
    void methodA();
}

public interface InterfaceB {
    void methodB();
}

public class MyClass implements InterfaceA, InterfaceB {
    public void methodA() {
        // 实现接口 A 的方法
    }

    public void methodB() {
        // 实现接口 B 的方法
    }
}

在上面的示例中,MyClass 类同时实现了 InterfaceAInterfaceB 接口,必须实现两个接口中的所有方法。

接口的默认方法

Java 8 引入了接口的默认方法。默认方法是在接口中提供的方法实现,可以具有方法体。默认方法在实现类中可以直接使用,也可以被实现类覆盖。

public interface MyInterface {
    void myMethod(); // 抽象方法

    default void myDefaultMethod() {
        // 默认方法的实现
    }
}

public class MyClass implements MyInterface {
    public void myMethod() {
        // 方法实现
    }
    // 默认方法可以被覆盖
    public void myDefaultMethod() {
        // 覆盖默认方法的实现
    }
}
接口的静态方法

Java 8 也引入了接口的静态方法。静态方法在接口中定义,可以直接通过接口名调用,无需实例化接口。

public interface MyInterface {
    void myMethod(); // 抽象方法

    default void myDefaultMethod() {
        // 默认方法的实现
    }

    static void myStaticMethod() {
        // 静态方法的实现
    }
}

MyInterface.myStaticMethod(); // 调用接口的静态方法
总结

接口是 Java 中实现多继承和多态性的重要工具。通过接口,可以定义规范,实现松耦合的设计。接口还提供了默认方法和静态方法的支持,使得接口更加灵活和易于使用。

【参考链接】