Ребята, мне нужна ваша помощь, пожалуйста.
У нас есть этот код:
class Program
{
static void Main(string[] args)
{
Animal pig = new Pig();
Pig pig2 = new Pig();
List<Animal> Animals = new List<Animal>();
Animals.Add(pig);
Animals.Add(pig2);
foreach(Animal a in Animals)
{
Animal.AnimalSound();
}
}
}
class Animal
{
public virtual void AnimalSound()
{
Console.WriteLine("AnimalSound");
}
}
class Pig : Animal
{
public override void AnimalSound()
{
Console.WriteLine("wee wee!");
}
}
Мой вопрос заключается в том, как я определяю переменные pig и pig2 В чем разница Animal pig = new Pig () ; и Pig pig2 = new Pig ();
Почему бы не объявить их обоих как ReferenceType Pig, так как Pig, как всегда, Animal ????