Создание объекта в соответствии с принципами полиморфизма - C#
Формулировка задачи:
ребят, помогите, пожалуйста, разобраться, что-то в мозгу у меня произошел сбой...
Изучая полиморфизм наткнулся на вот такое создание объекта(для минимизации листинга, своими словами):
смутило, что переменная типа БАЗОВЫЙ_КЛАСС, а присваивается экземпляр НАСЛЕДНИК()... . как это возможно, почему так делается, что при этом происходит, когда это нужно? Объясните мне, пожалуйста...
Я бы просто создал объект вот так:
БАЗОВЫЙ_КЛАСС myObj = new НАСЛЕДНИК();
НАСЛЕДНИК() myObj = new НАСЛЕДНИК();
Решение задачи: «Создание объекта в соответствии с принципами полиморфизма»
textual
Листинг программы
internal abstract class Pet
{
public virtual void EmitSound()
{
Console.WriteLine("Bla bla");
}
}
internal class Cat : Pet
{
public override void EmitSound()
{
Console.WriteLine("Meow meow. Give me more pity man!");
}
}
internal class Dog : Pet
{
public override void EmitSound()
{
Console.WriteLine("Woof woof. Thank u, master!");
}
}
internal class Program
{
private static void GiveFeed(Pet pet)
{
pet.EmitSound();
}
private static void Main(string[] args)
{
Pet[] pets = {new Dog(), new Cat()};
foreach (var pet in pets)
{
GiveFeed(pet);
}
Console.ReadKey(true);
}
}