C#通過虛方法實現方法重寫—多態。


class Program
    {
        //希望person存的是哪個類的對象就調用哪個類的方法
        //第一步  將父類中對應方法家virtual關鍵字  變為虛方法(子類可重寫)
        //子類中方法用override關鍵字將父類虛方法重寫
        static void Main(string[] args)
        {
            Person[] person = new Person[3];
            person[0] = new American();
            person[1] = new Japan();
            person[2] = new Chinese();
            for (int i = 0; i < person.Length; i++)
            {
                //由於person是Person類的,如果我想讓每個人說出他的國籍
                //只能判斷類型然后強制轉換:
                //if (person[0]is American)
                //{
                //    ((American)person[0]).Say();
                //}
                //希望person存的是哪個類的對象就調用哪個類的方法
                //第一步  將父類中對應方法家virtual關鍵字  變為虛方法(子類可重寫)
                //子類中方法用override關鍵字將父類虛方法重寫
                person[i].Say(); //這句話就體現了多態

            }

        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public virtual void Say()
        {
            Console.Write("Person");
        }
    }
    public class American:Person
    {
        public override void Say()
        {
            Console.WriteLine("美國人");
        }
    }
    public class Japan:Person
    {
        public override void Say()
        {
            Console.WriteLine("日本人");
        }
    }
    public class Chinese : Person
    {
        public override void Say()
        {
            Console.WriteLine("中國人");
        }
    }

實例中,可以通過person中的不同類型的對象來實現不同的方法。


免責聲明!

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



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