1. 程式人生 > >C#通過虛方法實現方法重寫—多態。

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

() say 判斷 err 美國人 個人 eric 重寫 over

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中的不同類型的對象來實現不同的方法。

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