java如何写一个接口
定义接口
在Java中,使用interface关键字定义接口。接口可以包含抽象方法、默认方法、静态方法和常量。接口的所有方法默认是public abstract,所有常量默认是public static final。
public interface MyInterface {
// 抽象方法
void abstractMethod();
// 默认方法(Java 8+)
default void defaultMethod() {
System.out.println("Default method implementation");
}
// 静态方法(Java 8+)
static void staticMethod() {
System.out.println("Static method implementation");
}
// 常量
String CONSTANT = "Interface constant";
}
实现接口
类通过implements关键字实现接口,必须实现接口中的所有抽象方法(除非是抽象类)。一个类可以实现多个接口。
public class MyClass implements MyInterface {
@Override
public void abstractMethod() {
System.out.println("Implemented abstract method");
}
// 可以选择重写默认方法
@Override
public void defaultMethod() {
System.out.println("Overridden default method");
}
}
使用接口
接口可以通过多态特性被引用,调用实现类的方法。
public class Main {
public static void main(String[] args) {
MyInterface obj = new MyClass();
obj.abstractMethod(); // 调用实现类的方法
obj.defaultMethod(); // 调用默认方法或重写的方法
MyInterface.staticMethod(); // 调用静态方法
System.out.println(MyInterface.CONSTANT); // 访问常量
}
}
接口继承
接口可以继承其他接口,支持多重继承。
public interface ParentInterface {
void parentMethod();
}
public interface ChildInterface extends ParentInterface {
void childMethod();
}
public class MyClass implements ChildInterface {
@Override
public void parentMethod() {
System.out.println("Parent method implementation");
}
@Override
public void childMethod() {
System.out.println("Child method implementation");
}
}
函数式接口
Java 8引入函数式接口(@FunctionalInterface),仅包含一个抽象方法,可用于Lambda表达式。
@FunctionalInterface
public interface MyFunctionalInterface {
void execute();
// 可以有默认方法
default void log() {
System.out.println("Logging");
}
}
public class Main {
public static void main(String[] args) {
// 使用Lambda实现函数式接口
MyFunctionalInterface func = () -> System.out.println("Lambda execution");
func.execute();
}
}






