輕松進修C#的密封類。本站提示廣大學習愛好者:(輕松進修C#的密封類)文章只能為提供參考,不一定能成為您想要的結果。以下是輕松進修C#的密封類正文
密封類概述
其實不是一切的類都可以被繼續,C#說話中就是密封類。在C#說話中我們可以把類聲明為sealed。這表現不克不及繼續該類,假如想要繼續那末編譯器確定會報錯。在把類或辦法標志為sealed時,最能夠湧現的情況時:假如要對庫,類或本身編寫的其他類停止操作,則重寫某些功效會招致編譯毛病。也能夠因貿易緣由把類或辦法標志為sealed,以防第三方違背注冊協定的方法擴大該類。然則在普通情形下,在把類或辦法標志為sealed時要當心,由於這麼做會限制它的應用。即便不願望它能繼續一個類或重寫類的某個成員,仍有能夠在未來的某個時辰,有人會碰到沒有預感到的情況。.NET基類庫年夜量應用了密封類,使願望從這些類派生出本身的類的第三方開辟人員沒法拜訪這些類。
密封類的聲明格局為:
拜訪潤飾符 sealed class 類名:基類或接口
{
類體
}
個中拜訪潤飾符,基類或接口都是可選的。
密封辦法概述
當實例辦法聲明包括sealed潤飾符時,稱辦法為密封辦法。假如實例辦法聲明包括sealed潤飾符,則它必需包括override潤飾符。應用sealed潤飾符可以避免派生類進一步重寫該辦法。要在辦法中應用sealed症結字,必需如今基類大將其聲明為重寫。假如基類上不願望有重寫的辦法或屬性,就不要將其聲明為virtual。
拜訪潤飾符 sealed override 辦法稱號(參數列表)
{
辦法體
}
個中拜訪潤飾符,參數列表都是可選的。
來看看實例
<span >using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace qq { class class1 { public virtual void seaText() { Console.WriteLine("這是一個未密封的辦法!"); } } sealed class class2 : class1 { public sealed override void seaText() { Console.WriteLine("這是一個密封的辦法!"); } } /*class class3 : class2//密封類不克不及被繼續 { public override void seaText()//不克不及重寫密封辦法 { Console.WriteLine("這是一個不克不及運轉的辦法!"); } }*/ class Program { static void Main(string[] args) { class2 c2 = new class2(); c2.seaText(); Console.ReadLine(); } } }</span>
很簡略得出的輸入成果:這是一個密封的辦法
<span >using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace qq { sealed class Person { public void print_Person_name() { Console.WriteLine("張三"); } } class Student : Person//密封類不克不及被繼續 { } class Program { static void Main(string[] args) { Student s1 = new Student(); s1.Print_Person_name();//不克不及挪用密封類的辦法 Console.ReadLine(); } } }</span>
這是一個毛病的實例,在我們應用密封類的時刻不克不及湧現如許的情形,再者就是如許的症結字我們普通要罕用。
以上就是關於C#的密封類的全體內容引見,願望對年夜家的進修有所贊助。