用基类类型的变量引用派生类类型的实例(多态)的理解
作者:Hong HuaMin
链接:https://www.zhihu.com/question/463017131/answer/1922569604
来源:知乎
Person p = null;
if (args[0] == "男")
{
p = new Man();
}
else
{
p = new Woman();
}
Console.WriteLine(p.GetName());
public class Person
{
public string Name { get; set; }
public virtual string GetName()
{
return Name;
}
}
public class Man : Person
{
public override string GetName()
{
return "Mr. " + Name;
}
}
public class Woman : Person
{
public override string GetName()
{
return "Mrs. " + Name;
}
}
一般我们并不把这种关系看作是"父类类型的变量引用子类类型的实例" ,而看作是“统一按父类调用,但是具体对象按子类的实现来执行,这就是多态,

浙公网安备 33010602011771号