Назад к вопросам
Junior
69
questionbank

Что такое наследование и полиморфизм в ссылочных типах данных?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Наследование — это механизм, позволяющий создавать новые классы (наследники или подклассы) на основе существующих (предков или суперклассов), перенимая их свойства и методы. Это способствует повторному использованию кода и созданию иерархий классов.

Полиморфизм — это возможность обрабатывать объекты различных классов, принадлежащих одной иерархии наследования, как объекты их общего предка. Это позволяет вызывать один и тот же метод на объектах разных типов, при этом поведение метода будет зависеть от конкретного типа объекта.

Пример наследования в C#:

public class Animal
{
    public string Name { get; set; }

    public virtual void MakeSound() // Виртуальный метод для полиморфизма
    {
        Console.WriteLine("Generic animal sound");
    }
}

public class Dog : Animal // Класс Dog наследует от Animal
{
    public string Breed { get; set; }

    public override void MakeSound() // Переопределение метода предка
    {
        Console.WriteLine("Woof!");
    }
}

Пример полиморфизма в C#:

Animal myDog = new Dog(); // Объект Dog рассматривается как Animal
myDog.Name = "Sharik";
myDog.MakeSound(); // Вызовет метод MakeSound из класса Dog (Woof!)

Animal genericAnimal = new Animal();
genericAnimal.Name = "Unknown";
genericAnimal.MakeSound(); // Вызовет метод MakeSound из класса Animal (Generic animal sound)

Наследование и полиморфизм являются ключевыми принципами объектно-ориентированного программирования и широко применяются в ссылочных типах данных для построения гибких и расширяемых систем.