如何实现接口 java
定义接口
接口在Java中使用interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。常量默认是public static final,方法默认是public abstract。
public interface Animal {
void eat(); // 抽象方法
default void sleep() { // 默认方法
System.out.println("Sleeping...");
}
static void breathe() { // 静态方法
System.out.println("Breathing...");
}
}
实现接口
类通过implements关键字实现接口,必须实现所有抽象方法,可以选择性重写默认方法。
public class Dog implements Animal {
@Override
public void eat() {
System.out.println("Dog eats meat");
}
}
多接口实现
一个类可以实现多个接口,解决Java单继承的限制。
public class Bird implements Animal, Flyable {
@Override
public void eat() {
System.out.println("Bird eats seeds");
}
@Override
public void fly() {
System.out.println("Bird is flying");
}
}
接口继承
接口可以继承其他接口,形成多级层次结构。
public interface Flyable {
void fly();
}
public interface AdvancedFlyable extends Flyable {
void navigate();
}
默认方法与冲突解决
如果多个接口有相同的默认方法,实现类必须明确指定使用哪个方法或重写方法。
public interface A {
default void show() {
System.out.println("A");
}
}
public interface B {
default void show() {
System.out.println("B");
}
}
public class C implements A, B {
@Override
public void show() {
A.super.show(); // 明确调用A的默认方法
}
}
接口与抽象类的区别
- 接口支持多继承,抽象类不支持。
- 接口不能有构造方法,抽象类可以有。
- 接口只能定义常量,抽象类可以定义普通成员变量。
实际应用场景
- 定义行为规范(如
Comparable接口实现对象排序)。 - 解耦代码(通过接口隔离具体实现)。
- 实现回调机制(如事件监听器)。
通过合理使用接口,可以提高代码的灵活性和可扩展性。







