封裝

2005 年 8 月 12 日

封裝方法或類別可防止子類別覆寫它。

C# 中,您使用關鍵字 sealed,在 Java 中,您使用關鍵字 final。C# 和 C++ 等語言預設會將方法視為封裝(您使用 virtual 關鍵字取消封裝),其他語言(例如 Java)預設會將方法保留為未封裝。

封裝是否是一個好主意,這是一個相當有爭議的話題。那些具有 指導態度 的人會非常小心哪些類別和功能可供覆寫,並限制延伸者僅覆寫他們認為安全的內容。那些具有 啟用態度 的人認為他們無法預測延伸者可能需要做什麼,因此不應該剝奪他們的靈活性 - 延伸者可以覆寫他們喜歡的任何內容,但他們必須承擔小心謹慎的責任。就像大多數事情一樣,我傾向於成為一個啟用者。