C# 关于virtual虚方法实现多态,提高程序可扩展性
1.main方法调用区域代码块
static void Main(string[] args)
{
Person[] per = new Person[5];
per[0] = new Person();
per[1] = new Chinese();
per[2] = new Japanese();
per[3] = new American();
per[4] = new Chinese();
for (int i=0;i<per.Length;i++)
{
per[i].SayNationality();//这句话体现了多态(什么是多态?多态:同一句话根据里面的对象不同的不同,实际调用的方法是不同的,就是多态)
}
Console.ReadKey();
}
2.父类代码块
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
//1.将父类中方法添加 virtual 关键字,即对应方法是虚方法
public virtual void SayNationality()
{
Console.WriteLine("地球人");
}
}
3.子类代码块
public class American : Person
{
public override void SayNationality()
{
Console.WriteLine("美国");
}
}
public class Chinese : Person
{
public override void SayNationality()
{
Console.WriteLine("中国");
}
}
public class Japanese : Person
{
public override void SayNationality()
{
Console.WriteLine("日本");
}
}
源码链接:https://pan.baidu.com/s/1Fk56OFjrUzMXQQMV88GeRg
提取码:nm64