物件導向 密封類

2021-10-04 22:53:32 字數 1413 閱讀 7443

密封類

通過在類定義前面放置關鍵字 sealed,可以將類宣告為密封類。例如:

public sealed class d

密封類不能用作基類。因此,它也不能是抽象類。密封類禁止派生。

由於密封類從不用作基類,所以有些執行時優化可以使對密封類成員的呼叫略快。

重寫基類虛成員的派生類成員,如方法、字段、屬性或事件,可被宣告為密封成員。

在後續的派生類中,這將取消該成員的虛效果。方法是在類成員宣告中將 sealed 關鍵字置於 override 關鍵字的前面。例如:

public class d : c

}特點:(1) 使用sealed關鍵字來定義密封類。

(2) 密封類不能被繼承。

(3) 在密封類不能定義虛函式,不能定義抽象函式。

(4) 可以使用sealed關鍵字來密封方法,但是只有在覆蓋基類的方法時才能使用sealed關鍵字。

(5) 使用sealed關鍵字密封的方法不能被覆蓋,防止派生類進一步重寫該方法,但能被過載,能被隱藏。

(6) 注意:在使用sealed關鍵字時,不能同時使用abstract或virtual關鍵字。

使用密封類注意一下幾點: 1、密封類不能作為基類被繼承,但它可以繼承別的類或介面。

2、在密封類中不能宣告受保護成員或虛方法,因為受保護成員和只能從派生類進行訪問,而虛成員只能在派生類中重寫。

3、由於密封類的不可繼承性,因此密封類不能宣告抽象的。

示例:using system;

using system.collections.generic;

using system.text;

namespace testsealedclass_01

//錯誤,在密封類中不能定義虛函式

//public virtual void method2()

//{}

//錯誤,在密封類中不能定義抽象函式

//public abstract void method3();

}//class b : a   //

錯誤,密封類a不能被繼承

//{}

class automobile

//display()

方法不是重寫,所以不能使用sealed關鍵字

//public sealed void display() //

}class car : automobile

public void display(string mark) //

使用sealed關鍵字密封的方法,能被過載

", mark);}}

class smallcar : car //

使用sealde關鍵字密封的方法,能被隱藏

public new void display()

}class program}}

物件導向類

1.類和例項 類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。記憶體位址 給例項繫結屬性 由於類可以起到模板的作用,因此,可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去 2.資料封裝 就是在類裡面定義方...

物件導向類

類的宣告 functiona es6 class a2 生成例項 newa newa2 如何繼承 借助建構函式繼承 functionp p.prototype.say function 父類的原型物件無法被子類繼承 functionc 借助原型鏈繼承 functionp functionc c.pr...

物件導向類

類與例項 1 類的宣告 1 第一種方式 用建構函式模擬類的方式 function animal 2 第二種方式 es6 class class animal2 2 生成例項 new animal new animal2 類與繼承 如何實現繼承 1 借助建構函式實現繼承 function parent...