Создание объекта в соответствии с принципами полиморфизма - 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);
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5