我的理解:被转换为基类的不同子类对象在执行同一方法(virtrul转override)时可产生不同的执行结果,此即多态性.
class Program
{
static void Main(string[] args)
{
animal[] p = new animal[4] ;
p[0]=new dog();
p[1]=new cat();
p[2] = new duck();
p[3] = new chook();
for (int i=0;i<4;i++)
{
p[i].show();
}
}
}
class animal
{
public virtual void show()
{
Console.WriteLine("animal");
}
}
class cat : animal
{
public override void show()
{
Console.WriteLine("I am a cat,Mi O ...");
}
}
class chook : animal
{
public override void show()
{
Console.WriteLine("I am a chook,O...");
}
}
class dog : animal
{
public override void show()
{
Console.WriteLine("I am a dog ,Wang Wang Wang ...");
}
}
class duck : animal
{
public override void show()
{
Console.WriteLine("I am a duck ,Ya Ya Ya...");
}
}
这种通过基类引用调用子类方法的机制就是多态性。它使得程序更具灵活性和可扩展性,可以轻松地扩展新的子类而无需修改现有代码