實例中,可以通過person中的不同類型的對象來實現不同的方法。 ...
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中的不同類型的對象來實現不同的方法。