namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Animal a = new Animal ();
a.call();
a=new Dog();
a.call();
a = new Cat();
a.call();
Console.Read();
}
}
/// <summary>
/// 多態的另一種用法,一個對象實例,可以重新實現爲其所屬類的子類的對象,如果該子類重寫了其父類的某個虛方法,
/// 這個實例對象的虛方法就可能呈現出多態特徵。
/// 需要注意的是虛方法和重寫方法都不能是私有的。
///
/// </summary>
class Animal
{
public virtual void call()
{
Console.WriteLine("Animal");
}
}
class Dog : Animal
{
public override void call()
{
Console.WriteLine("Dog");
}
}
class Cat : Animal
{
public override void call()
{
Console.WriteLine("Cat");
}
}
}