java 中类通过 implements 关键字实现接口,必须提供接口中所有抽象方法的具体代码体。如果类没有实现全部方法或不是抽象类,编译器会报错;若实现了全部方法,该类就可以被实例化并调用这些方法。

接口定义后类如何实现具体方法
类在声明时紧跟 implements 关键字列出接口名,随后在类体内部编写与接口签名完全一致的方法。编译器会检查每个方法的返回类型、名称和参数列表是否匹配,匹配成功则视为有效实现。

interface Animal {
void makeSound();
}
public class Dog implements Animal {
public void makeSound() {
System.out.println("Woof!");
}
public static void main(String[] args) {
Dog dog = new Dog();
dog.makeSound();
}
}
运行上述代码将输出 Woof!。这里 Dog 类显式实现了 Animal 接口中的 makeSound 方法,因此可以正常创建对象并执行逻辑。
未实现接口方法时会发生什么
如果类声明了实现某个接口但遗漏了其中任何一个抽象方法,且该类本身没有被标记为 abstract,编译阶段就会直接失败。这是 Java 强制契约的一种体现,确保实现类具备完整的行为能力。

interface Vehicle {
void start();
void stop();
}
// 错误示例:缺少 stop 方法且非抽象类
public class Car implements Vehicle {
public void start() {
System.out.println("Engine started");
}
// 忘记实现 stop() 方法
}
尝试编译这段代码会收到类似 Car is not abstract and does not override abstract method stop() in Vehicle 的编译错误。只有将 Car 改为 abstract class Car 或者补全 stop() 方法,代码才能通过编译。
实现多个接口时如何处理同名方法
当一个类同时实现多个接口,且这些接口包含相同签名的方法时,只需在该类中编写一个方法体即可满足所有接口的要求。Java 允许这种多重继承行为,因为接口只定义契约而不维护状态,所以不会产生冲突。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











