首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

抽象類實現接口的實戰場景與設計意圖

     編輯:程式設計疑難解答

語法支持

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 類型使用

此模式體現「介面隔離原則」與「依賴倒置原則」的結合應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved