場景
類 A 有靜態變量 a,類 B 長期使用 a。是繼承 A 好,還是 A.a 直接調用好?
結論
直接用類名調用(A.a)更合適,理由:
- 語義清晰:靜態成員屬於類,不屬於實例,繼承會誤導「是一種」關係。
- 性能:靜態變量隨類加載駐留方法區,直接訪問無實例化開銷;繼承需創建子類實例(若非靜態上下文),增加 GC 壓力。
- 封裝性:繼承暴露父類所有 protected/public 成員,破壞封裝。
最佳實踐:將常用靜態常量/工具方法放入 final class Constants 或工具類,靜態導入使用。