java如何实现接口
接口的定义与实现
在Java中,接口(Interface)是一种完全抽象的类,用于定义一组方法规范,但不提供具体实现。类通过实现(implements)接口来遵循这些规范。
声明接口
接口使用interface关键字声明,可以包含抽象方法、默认方法、静态方法和常量(隐式为public static final)。
示例:
public interface Animal {
void eat(); // 抽象方法
void sleep(); // 抽象方法
default void breathe() { // 默认方法(Java 8+)
System.out.println("Breathing...");
}
static boolean isLiving() { // 静态方法(Java 8+)
return true;
}
}
实现接口
类通过implements关键字实现接口,必须重写所有抽象方法(除非是抽象类)。
示例:
public class Dog implements Animal {
@Override
public void eat() {
System.out.println("Dog eats meat.");
}
@Override
public void sleep() {
System.out.println("Dog sleeps 10 hours a day.");
}
}
多接口实现
Java支持一个类实现多个接口,用逗号分隔。
示例:
public class Bird implements Animal, Flyable {
@Override
public void eat() { /* 实现Animal的方法 */ }
@Override
public void sleep() { /* 实现Animal的方法 */ }
@Override
public void fly() { /* 实现Flyable的方法 */ }
}
接口继承
接口可以继承其他接口(使用extends),支持多继承。
示例:
public interface Flyable {
void fly();
}
public interface Swimmable {
void swim();
}
public interface Amphibious extends Flyable, Swimmable {
void adapt();
}
默认方法与冲突解决
如果多个接口有相同的默认方法,实现类必须明确指定使用哪个方法(或重写)。
示例:
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的默认方法
}
}
注意事项
- 接口中的方法默认是
public abstract,变量默认是public static final。 - Java 8后引入的默认方法和静态方法可以有具体实现。
- 接口不能实例化,但可以通过匿名类或Lambda表达式实现。







