輕松進修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#的密封類的全體內容引見,願望對年夜家的進修有所贊助。