Java 允許 abstract class D implements A { ... },抽象類可實現接口。
背景:接口 A 定義 10 個方法,類 B 已完整實現 A。新類 C 僅需 A 中 3 個方法,但不想繼承 B(職責不符),也不能修改 A(破壞 B)。
abstract class D implements A {
// C 需要的方法聲明為抽象,強制子類實現
public abstract void neededMethod1();
public abstract void neededMethod2();
// 不需要的方法提供空實現,避免子類重寫
public void unusedMethod1() { /* empty */ }
public void unusedMethod2() { /* empty */ }
// ...
}
class C extends D {
// 僅實現業務需要的方法
public void neededMethod1() { ... }
public void neededMethod2() { ... }
}
C 不受 A 新增方法影響D 仍可作為 A 類型使用此模式體現「介面隔離原則」與「依賴倒置原則」的結合應用。