You create a new one Dog, but then you process (use) it as Animal.
, - , Animal, Dog - . Dog Dog, Animal, , .
: , , :
public abstract class Animal
{
public abstract void Move();
public virtual void MakeSignatureSound()
{
Console.WriteLine("Ugggg");
}
}
public class Dog : Animal
{
public override void Move()
{
RunLikeAPuppy();
}
public override void MakeSignatureSound()
{
Console.WriteLine("Woof");
}
}
public class CaveMan : Animal
{
public override void Move()
{
RunLikeANeanderthal();
}
}
public class Cat : Animal
{
public override void Move()
{
RunLikeAKitteh();
}
public override void MakeSignatureSound()
{
Console.WriteLine("Meioww");
}
}
:
Animal , Move(), , Move(), didn , - ,CaveMan MakeSignatureSound(),
, :
Animal caveman = new CaveMan();
Animal dog = new Dog();
caveman.MakeSignatureSound();
dog.MakeSignatureSound();
:
Ugggg
Woof
, , :
Animal animal = new Animal();
, , ( ) Animal, , Animal, .