java如何编写接口
编写Java接口的基本语法
在Java中,接口通过interface关键字定义,用于声明一组方法的抽象规范,不包含具体实现(Java 8后允许默认方法和静态方法)。语法如下:
public interface InterfaceName {
// 常量(默认 public static final)
String CONSTANT = "value";
// 抽象方法(默认 public abstract)
void methodName();
// 默认方法(Java 8+)
default void defaultMethod() {
System.out.println("Default implementation");
}
// 静态方法(Java 8+)
static void staticMethod() {
System.out.println("Static method");
}
}
接口的实现
类通过implements关键字实现接口,必须重写所有抽象方法(除非是抽象类):
public class ClassName implements InterfaceName {
@Override
public void methodName() {
System.out.println("Method implementation");
}
}
多接口实现
一个类可以实现多个接口,解决Java单继承的限制:
public class MultiImpl implements Interface1, Interface2 {
@Override
public void methodFromInterface1() { /* 实现 */ }
@Override
public void methodFromInterface2() { /* 实现 */ }
}
接口的继承
接口可以继承其他接口,形成层次结构:
public interface ChildInterface extends ParentInterface {
void additionalMethod();
}
函数式接口(Java 8+)
仅包含一个抽象方法的接口可用作Lambda表达式或方法引用:
@FunctionalInterface
public interface SimpleFuncInterface {
void execute(); // 单一抽象方法
}
// 使用Lambda实现
SimpleFuncInterface sfi = () -> System.out.println("Running");
sfi.execute();
默认方法与静态方法
- 默认方法:提供默认实现,子类可选择重写。
- 静态方法:通过接口名直接调用,例如
InterfaceName.staticMethod()。
实际应用示例
定义数据库操作的接口:
public interface DatabaseService {
void connect(String url);
void disconnect();
default void logStatus() {
System.out.println("Connection active");
}
}
// 实现类
public class MySQLService implements DatabaseService {
@Override
public void connect(String url) {
System.out.println("MySQL connected to " + url);
}
@Override
public void disconnect() {
System.out.println("MySQL disconnected");
}
}
关键注意事项
- 接口方法默认是
public,无需显式声明。 - 接口不能实例化,需通过实现类使用。
- 常量在接口中默认为
public static final。 - 从Java 9开始,接口支持私有方法(辅助默认方法或静态方法)。
通过以上方式,可以灵活设计高内聚、低耦合的Java程序结构。







