Java中创建接口实现类需用implements关键字并重写所有抽象方法;接口用interface声明,含常量和抽象方法;实现类可多实现,支持多态;Java 8起接口可含default和static方法。

Java 中创建接口的实现类,核心是用 implements 关键字声明类实现某个接口,并重写接口中所有抽象方法。
定义一个接口
接口用 interface 声明,只包含常量和抽象方法(默认 public abstract):
public interface Animal {
String TYPE = "Mammal"; // 接口中的字段默认 public static final
void makeSound(); // 默认 public abstract
void move();
}
创建实现类
用 class 实现类名 implements 接口名 语法,并必须提供接口中每个抽象方法的具体实现:
public class Dog implements Animal {
@Override
public void makeSound() {
System.out.println("Woof!");
}
@Override
public void move() {
System.out.println("Dog runs fast.");
}
}
- 如果漏写任一抽象方法,编译会报错:“Dog is not abstract and does not override abstract method xxx”
- @Override 注解非强制,但强烈建议加上,便于编译器检查和代码可读
- 一个类可同时实现多个接口,用英文逗号分隔:
class Cat implements Animal, Pet
使用实现类
可以通过接口类型或实现类类型来引用对象,体现多态性:
立即学习“Java免费学习笔记(深入)”;
Animal myPet = new Dog(); // 接口引用指向实现类实例 myPet.makeSound(); // 输出:Woof! Dog dog = new Dog(); // 也可直接用实现类类型 dog.move(); // 输出:Dog runs fast.
- 接口引用只能调用接口中声明的方法(如不能调用 Dog 特有方法)
- 若需调用实现类特有功能,可向下转型:
((Dog) myPet).fetchBall()(需确保类型安全)
补充说明
从 Java 8 开始,接口可含 default 和 static 方法,实现类无需重写它们:
public interface Animal {
void makeSound();
default void sleep() {
System.out.println("Zzz...");
}
static void info() {
System.out.println("This is an animal interface.");
}
}
实现类自动获得 sleep() 的默认行为,可直接调用;info() 则通过接口名调用:Animal.info()。
基本上就这些。接口定义契约,实现类负责兑现——只要方法签名对得上,具体怎么实现,由你决定。











