多态

//多态,表示调用父类的方法,会自动对像的子类的方法
//zhun
var ps = new List<Person>();
ps.AddRange(new[] {(Person)new Chinese("小明"), new English("Tom")});
for (int i = 0; i < ps.Count; i++)
{
ps[i].Speak();
}

class Person
{
protected string name;
public Person(string name)
{
this.name = name;
}
public virtual void Speak()
{
Console.WriteLine($"我是人类,我叫{name},会说话");
}
}

class Chinese : Person
{
public Chinese(string name) : base(name)
{

}
public override void Speak()
{
Console.WriteLine($"我是中国人,我叫{name},会说话");
}
}

class English : Person
{
public English(string name) : base(name)
{

}
public override void Speak()
{
Console.WriteLine($"I am English,My Name is {name},I can speak English");
}
}

posted @ 2020-01-07 14:03  十年之前,十年之后  阅读(50)  评论(0)    收藏  举报