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

相關文章
相關標籤/搜索