Создание объекта в соответствии с принципами полиморфизма - 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д