以下是使用 interface
时的一些注意事项和最佳实践:
✅ 1. Java 8+ 中接口可以有 default
和 static
方法
default
方法:可以在接口中提供默认实现。static
方法:可以直接通过接口名调用,不能被实现类继承。
interface MyInterface {
default void log() {
System.out.println("Default log");
}
static void util() {
System.out.println("Utility method");
}
}
⚠️ 注意:
default
方法在多继承时可能会引起冲突(需要在实现类中显式重写)。
✅ 2. 一个类可以实现多个接口(多重继承接口)
这是接口的强大之处。Java 不支持类的多继承,但支持接口多继承。
interface A {
void methodA();
}
interface B {
void methodB();
}
class C implements A, B {
public void methodA() { }
public void methodB() { }
}
✅ 3. 接口可以继承其他接口
接口之间可以多重继承。
实现该接口的类必须实现所有祖先接口的方法,除非是
default
方法。
interface A {
void methodA();
}
interface B extends A {
void methodB();
}
✅ 4. Java 9+ 中接口允许 private
方法
用于复用
default
或static
方法中的公共逻辑。
interface MyInterface {
private void common() {
System.out.println("Shared logic");
}
default void a() {
common();
}
default void b() {
common();
}
}
错误做法 | 原因说明 |
---|---|
在接口中堆砌一堆常量 | 接口职责变得模糊,违背接口隔离原则 |
一个类实现多个无关的接口 | 可读性差、设计混乱 |
滥用 default 方法(实现逻辑复杂) | 接口不应承担太多实现逻辑,职责不清晰 |
用接口做工具类(如 interface Utils ) |
接口不是工具类,建议用 final class + static |
写小说也写代码,左手架空世界,右手现实逻辑。
📚 欢迎来看博客,起点同笔名在写小说,欢迎来找我玩。