OverWrite


OverWrite

一、簡介

overwrite覆寫,用new實現。在子類中用 new 關鍵字修飾定義的與父類中同名的方法,也稱為覆蓋,覆蓋不會改變父類方法的功能。

二、代碼

namespace 重寫
{
    class Parent
    {
        public void F()
        {
            Console.WriteLine("Parent.F()");
        }
        //重寫的屬性必須是virtual、abstract或override
        public virtual void G() //虛方法
        {
            Console.WriteLine("Parent.G()");
        }
    }
    class ChildOne : Parent //子類一繼承父類
    {
        new public void F() //覆寫(overwrite)父類函數
        {
            Console.WriteLine("ChildOne.F()");
        }
        public override void G() //重寫(override)父類虛函數,主要實現多態
        {
            Console.WriteLine("ChildOne.G()");
        }
    }

    class ChildTwo : Parent //子類二繼承父類
    {
        new public void F()
        {
            Console.WriteLine("ChildTwo.F()");
        }
        public override void G()
        {
            Console.WriteLine("ChildTwo.G()");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Parent childOne = new ChildOne();
            Parent childTwo = new ChildTwo();
            //調用Parent.F()
            childOne.F();
            childTwo.F();
            //實現多態
            childOne.G();
            childTwo.G();
        }
    }
}

三、結果

重寫子類的方法,但是不會覆蓋父類的方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM