C#中基於繼承的多態是如何實現的。

C#支持基於接口的多態和基於繼承的多態。

今日簡單地學了下基於繼承的多態,大致內容如圖所示。

來說說基於繼承的多態是如何實現的?

首先,要知道如何重寫父類方法。

重寫父類方法就是修改它的實現,或者就是在子類中對繼承的父類方法重新編寫。

在父類中用“virtual”關鍵字聲明的方法(俗稱虛擬方法),在子類中可以重寫。

例如我們在上一章的Person類上定義一個虛擬方法:

        public virtual void Dispaly()
        {
            Console.WriteLine("姓名:{0},性別:{1},年齡:{2}", this._name, this._gender, this._age);
        }

子類中使用“override”關鍵字聲明重寫,來實現對父類中的虛擬方法修改或者重新編譯。

例如在上一章的Student類上重新Person類的Dispaly方法:

        //重寫父類的Dispaly的虛擬方法。
        public override void Dispaly()
        {
            Console.WriteLine("Student子類重寫父類的方法。");
        }

或者新建一個Tercher類,繼承Person類,重寫並調用Dispaly方法:

    public class Terchar : Person
    {

            public override void Dispaly()
            {
                Console.WriteLine("Tercher子類重寫並調用父類的方法");
                base.Dispaly();  //調用父類的Dispaly方法顯示。
            }
       
    }

注意:多態和重寫是緊密聯繫的,子類重寫方法的訪問權限和父類的虛擬方法的訪問權限必須一致。

這裏建議可以學習下函數的重載以及動態多態性:C#多態性 | 菜鳥教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章