java 如何写接口
Java 接口的基本写法
在Java中,接口(Interface)是一种完全抽象的类,用于定义一组方法规范,由实现类具体实现。接口通过interface关键字定义。
public interface MyInterface {
// 抽象方法(默认public abstract)
void method1();
// Java 8+ 默认方法
default void defaultMethod() {
System.out.println("Default implementation");
}
// Java 8+ 静态方法
static void staticMethod() {
System.out.println("Static method");
}
}
接口的实现
类通过implements关键字实现接口,必须实现所有抽象方法(默认方法除外)。
public class MyClass implements MyInterface {
@Override
public void method1() {
System.out.println("Implemented method1");
}
}
接口的多继承
Java支持一个类实现多个接口,解决单继承的限制问题。
public interface InterfaceA {
void methodA();
}
public interface InterfaceB {
void methodB();
}
public class MyClass implements InterfaceA, InterfaceB {
@Override
public void methodA() {
System.out.println("Implemented methodA");
}
@Override
public void methodB() {
System.out.println("Implemented methodB");
}
}
接口的继承
接口可以继承其他接口,形成接口层次结构。
public interface ParentInterface {
void parentMethod();
}
public interface ChildInterface extends ParentInterface {
void childMethod();
}
public class MyClass implements ChildInterface {
@Override
public void parentMethod() {
System.out.println("Implemented parentMethod");
}
@Override
public void childMethod() {
System.out.println("Implemented childMethod");
}
}
Java 8+ 接口新特性
从Java 8开始,接口可以包含:
- 默认方法(
default修饰) - 静态方法(
static修饰) - 私有方法(Java 9+,
private修饰)
public interface EnhancedInterface {
// 传统抽象方法
void abstractMethod();
// 默认方法
default void showDefault() {
System.out.println("Default method");
privateMethod(); // 调用私有方法
}
// 静态方法
static void showStatic() {
System.out.println("Static method");
}
// 私有方法(Java 9+)
private void privateMethod() {
System.out.println("Private method");
}
}
函数式接口
只有一个抽象方法的接口称为函数式接口,可用@FunctionalInterface注解标注,常用于Lambda表达式。
@FunctionalInterface
public interface Calculator {
int calculate(int a, int b);
}
// 使用Lambda表达式实现
Calculator add = (a, b) -> a + b;
System.out.println(add.calculate(5, 3)); // 输出8
接口常量
接口中可以定义常量,这些常量默认为public static final。
public interface Constants {
String DEFAULT_NAME = "Unknown";
int MAX_SIZE = 100;
}
// 使用方式
String name = Constants.DEFAULT_NAME;






