首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 接口實戰:樂器體系與「純抽象類」契約編程

     編輯:Java 相關知識

接口本質:純抽象類

  • 只有方法聲明,無方法體(Java 8 前)。
  • 字段隱式 public static final。
  • 方法隱式 public,實現類必須 public 實現。

Instrument5 接口與多實現

interface Instrument5 {
    int i = 5; // 編譯期常數
    void play(); String what(); void adjust();
}
class Wind5 implements Instrument5 { ... }
class Percussion5 implements Instrument5 { ... }
class Stringed5 implements Instrument5 { ... }
class Brass5 extends Wind5 { ... } // 繼承具體類並實現接口
class Woodwind5 extends Wind5 { ... }

多態調用:tune() 不關心具體類型

static void tune(Instrument5 i) { i.play(); }
static void tuneAll(Instrument5[] e) { for (Instrument5 ins : e) tune(ins); }

Instrument5[] orchestra = { new Wind5(), new Percussion5(), new Stringed5(), new Brass5(), new Woodwind5() };
tuneAll(orchestra);

核心價值

tune() 僅依賴 Instrument5 接口,新增樂器類型(如 Electronic5)零修改 即可納入體系。接口建立了「協議」,實現類遵守協議,框架代碼穩定不變。

接口 vs 抽象類 vs 普通類:行為一致

對調用者而言,Instrument5 是接口、抽象類還是普通類完全透明。多態機制統一處理。差異僅在於「創建與使用的控制力度」:

  • 接口:最純粹契約,支持多實現組合。
  • 抽象類:可提供部份實現/字段。
  • 普通類:完整實現,單繼承。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved