java如何写接口
定义接口
在Java中,接口使用interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。接口的所有方法默认是public abstract,所有字段默认是public static final。
public interface MyInterface {
// 抽象方法(默认public abstract)
void doSomething();
// 默认方法(Java 8+)
default void defaultMethod() {
System.out.println("Default method implementation");
}
// 静态方法(Java 8+)
static void staticMethod() {
System.out.println("Static method in interface");
}
// 常量
String CONSTANT = "INTERFACE_CONSTANT";
}
实现接口
类通过implements关键字实现接口,必须实现接口中所有的抽象方法(除非是抽象类)。

public class MyClass implements MyInterface {
@Override
public void doSomething() {
System.out.println("Implementing abstract method");
}
// 可选择重写默认方法
@Override
public void defaultMethod() {
System.out.println("Overridden default method");
}
}
多接口实现
一个类可以实现多个接口,用逗号分隔。

public class MultiInterfaceImpl implements MyInterface, AnotherInterface {
@Override
public void doSomething() {
System.out.println("Implementing MyInterface method");
}
@Override
public void anotherMethod() {
System.out.println("Implementing AnotherInterface method");
}
}
接口继承
接口可以继承其他接口,使用extends关键字,支持多继承。
public interface ParentInterface {
void parentMethod();
}
public interface ChildInterface extends ParentInterface {
void childMethod();
}
public class ChildImpl implements ChildInterface {
@Override
public void parentMethod() {
System.out.println("Parent method");
}
@Override
public void childMethod() {
System.out.println("Child method");
}
}
函数式接口
如果接口仅包含一个抽象方法,可以标记为@FunctionalInterface,用于Lambda表达式。
@FunctionalInterface
public interface SimpleFuncInterface {
void execute();
}
// 使用Lambda实现
SimpleFuncInterface func = () -> System.out.println("Lambda implementation");
func.execute();
接口与抽象类的区别
- 接口支持多继承,抽象类不支持。
- 接口不能包含实例字段或构造方法,抽象类可以。
- 接口的方法默认是抽象的,抽象类可以包含具体方法。
通过合理使用接口,可以实现代码解耦、多态设计和模块化开发。






