![](/img/trans.png)
[英]Why do I need to declare a Virtual Method when I can Hide it in derived Class
[英]why do I need “sealed” method if “virtual” is required in order to allow derived class override it?
還是我在這里缺少一些基本的東西?
因為密封方法避免了它在派生類中被覆蓋,而virtual方法允許它
sealed
是用於防止子類覆蓋您覆蓋的virtual
方法。
virtual
關鍵字將使您(或使用您的代碼的人)使用自己的邏輯覆蓋給定的方法。
abstract
關鍵字將強制您(或使用您的代碼的其他人)用您自己的邏輯覆蓋它。
sealed
關鍵字將使您(或使用您的代碼的人)可以防止對方法的任何進一步修改。
如果您不添加“密封”,則可以再次覆蓋替代方法。
當您想到這些關鍵字時,請同時考慮以下兩種情況:您可以自己編寫代碼,或者可以創建DLL和代碼庫供他人使用。 后一種情況通常需要使用密封,抽象和虛擬的方式。
希望這可以幫助!
方法不被sealed
或virtual
。 您無需指定任何內容,而這又不會讓派生類覆蓋它們。
方法可以虛擬,但只能密封類。
密封類不能從中繼承。
來源: http : //msdn.microsoft.com/en-us/library/88c54tsw(v=vs.71).aspx
編輯:好的,我錯了,一個方法可以被密封,但是只有一個已經覆蓋了另一個方法,關鍵字隨后阻止了該方法的進一步覆蓋。
來源: http : //msdn.microsoft.com/en-us/library/aa645769(v=vs.71).aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.