十、密封類和密封方法
阿新 • • 發佈:2017-10-22
後繼 code pre lin 除了 virtual 抽象方法 限制 led
密封類
密封類可以用來限制擴展性,如果密封了某個類,則其他類不能從該類繼承。
如果密封了某個成員,則派生類不能重寫該成員的實現。
一個密封類是沒有也不能繼承的類,因此sealed關鍵字和abstract關鍵字不能同時使用。
密封類除了不能被繼承外,其他與非密封類一樣。
C#中聲明密封類時需要使用sealed關鍵字。
訪問修飾符 sealed class 類名:基類或接口 { //類成員 } public sealed class myClass //聲明密封類 { public int i=0; public void methed() { Console.WriteLine("密封類"); } }
密封方法是為了重寫基類的虛方法並提供具體的實現,同時防止其後繼類(派生類)再次重寫該虛方法。
因此在密封方法中sealed關鍵字總是和override關鍵字同時使用。
public/*基類的可訪問性一定要高於子類的,平級也可以*/class Class1 { public virtual void Write() { Console.WriteLine("未密封方法"); } } //如果一個類不希望將來在使用的過程中被繼承,被派生,這時候可以采用關鍵字sealed//虛方法virtual 抽象方法abstract的存在就是為了繼承,為了派生,因此不能被放在sealed類中 public class Class2:Class1 { public sealed override void Write() { Console.WriteLine("密封方法"); } } public class Class3:Class2 { /* public override sealed void Write() { 在Class2中該方法被密封,無法重寫。 }*/ }
十、密封類和密封方法