0Pricing
Java Academy · 课时

接口(简介与对比)

定义接口,在类中实现接口,并将其与抽象类进行对比。学习默认方法和多接口实现。

接口(简介与对比) 是 CoddyKit 上的免费 Java Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 3 节课。

什么是接口

接口:列出类必须提供的方法签名的一份契约。您可以用它描述某种能力,例如 Drivable 或 Printable,而不必固定类的继承层次。

代码:实现接口

类通过实现接口来保证提供某些行为。您可以使用接口类型引用对象,并调用其中声明的方法。

public class Main {
  // Interface that declares a capability
  static interface Drivable {
    void drive(); // method to implement
  }

  // A class implements the interface
  static class Car implements Drivable {
    public void drive() {
      System.out.println("Car is driving");
    }
  }

  public static void main(String[] args) {
    Drivable d = new Car(); // upcast to interface
    d.drive();              // runs Car's method
  }
}

接口与抽象类

抽象类 = 带有共享代码的“属于某类”关系。接口 = “能够执行某项操作”的能力。一个类可以继承一个类,但可以实现多个接口,这能让设计保持灵活,并避免形成过深的继承树。

代码:默认方法

接口可以包含带有代码的默认方法。实现该接口的类会自动继承这段简单的行为。

public class Main {
  // Interface with a default method (has a body)
  static interface Greeter {
    void greet(String name);
    default void sayBye() { // default provides a reusable tiny implementation
      System.out.println("Bye");
    }
  }

  static class SimpleGreeter implements Greeter {
    public void greet(String name) {
      System.out.println("Hello, " + name);
    }
  }

  public static void main(String[] args) {
    Greeter g = new SimpleGreeter();
    g.greet("Ada");
    g.sayBye(); // default method from the interface
  }
}

多个接口

一个类可以同时实现多个接口(例如 Drivable 和 Maintainable)。这样可以描述各种能力,而不必强制使用固定的父类链。

代码:多个接口

一个类同时实现两个接口。根据上下文,您可以将它视为 Drivable、Maintainable 或其具体类型。

public class Main {
  static interface Drivable { void drive(); }
  static interface Maintainable { void maintain(); }

  static class ServiceCar implements Drivable, Maintainable {
    public void drive() { System.out.println("ServiceCar driving"); }
    public void maintain() { System.out.println("ServiceCar maintenance"); }
  }

  public static void main(String[] args) {
    ServiceCar s = new ServiceCar();
    s.drive();
    s.maintain();
  }
}

接口检查

快速检查:关于 Java 中的接口,哪项说法正确?

回顾

回顾:接口定义行为契约,类负责实现它们。需要时,可以使用默认方法提供少量共享代码,并在一个类中组合多种能力。

常见问题解答

「接口(简介与对比)」课时是免费的吗?

是的 — 「接口(简介与对比)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 3 节课。

「接口(简介与对比)」这节课中我会学到什么?

定义接口,在类中实现接口,并将其与抽象类进行对比。学习默认方法和多接口实现。 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Java Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。

「接口(简介与对比)」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Java Academy 课中编写并运行代码吗?

能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 抽象类
  2. 接口(简介与对比)
  3. 向上转型、向下转型与 instanceof
← 返回 Java Academy