我已經看過幾次,但是在我看到的帖子中,沒有人解釋。為什么我不應該擴展JFrame(或任何組件)?是否存在我應該擴展組件的條件,或者這是您不應該采用的嚴格規則?
3 回答

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
一般而言,擴展組件傾向于嚴格使用該組件。這在設計方面以不必要的方式嚴重地限制了您的選項,以使您的類無法擴展不同的類,您無法隱藏JFrame的方法,從而導致在使用類時,JFrame的維護更加困難并且更容易觸發意外的錯誤。
通常,其意圖是嚴格使用該類來繪制框架,并且優先于繼承而不是繼承。
話雖這么說,當您打算讓子類向Frame添加項目特定功能(例如便捷方法等)時,子類應該很好,在這種情況下,將使用子類代替Frame本身,但通常將其用作框架,而不是作為應用程序中特定框架的視圖。

UYOU
TA貢獻1878條經驗 獲得超4個贊
優先考慮組成而不是繼承。所有通常的原因。組合強制減少代碼之間的依賴性。
Swing和事件AWT的組件非常復雜。您不想陷入那種混亂。您可以輕松地意外覆蓋方法。如果您確實需要重寫方法,那么如果它屬于普通代碼,則很難看到它在哪里完成。

GCT1015
TA貢獻1827條經驗 獲得超4個贊
如果您的應用程序確實只是一個JFrame,請繼續進行擴展。但是,如果僅使用 JFrame ,則最好使用對象組合而不是繼承。
例如,如果您的對象擴展了其他對象,那么您將別無選擇。
添加回答
舉報
0/150
提交
取消