首頁  >  文章  >  後端開發  >  C#拾遺之小知識(四):繼承

C#拾遺之小知識(四):繼承

黄舟
黄舟原創
2017-02-07 15:17:081345瀏覽

方法重寫:

    基類別方法標識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#拾遺之小知識(四):繼承的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn