方法重寫:
基類方法標識virtual關鍵字,子類(繼承類)中方法重寫標識override關鍵字。
重寫的方法必須跟基類的類型相同,如方法名稱、返回和接受參數。
public class Class1 { public virtual void show(int i) {……} } public class Class2:Class1 { public override void show(int a) {……} }
New方法重寫:
public class Class1 { protected virtual void show(int i) {……} } public class Class2:Class1 { public new int show(int a) {……} }
new聲明定義自己的同名方法。傳回型別、訪問類型可以不同於基類的同名方法。
如果接受參數不同於基類同名方法時new關鍵字會多餘,相當於一般重寫(基類沒有一樣的方法,沒有一樣的隱藏方法)。
override重寫基類方法(隱藏方法)的方法體,new重寫基類同名方法(接收參數一樣)。
終止繼承:
終止繼承標識sealed。以下代碼編譯出錯,Class2無法繼承封閉類Class1
public sealed class Class1 { public virtual void show(int i) {……} } //public class Class2:Class1 //{ // public override void show(int a) // {……} //}
調用基類建構函式:
編譯器先調用基類建構函式,再調用繼承類建構函式。
public class Class1 { public Class1(int i , string j) {……} } public class Class2:Class1 { public Class2(int i,string j,object obj):base(i,j) {……} }
以上就是C#拾遺之小知識(四):繼承的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!