Back to questions
Junior — Middle
63
Объясните концепцию виртуальных методов в языке C# и их роль в реализации полиморфизма.
Answer from AI
sobes.tech AI
В C# виртуальные методы — это методы, объявленные с ключевым словом virtual, которые могут быть переопределены в производных классах с помощью override. Это основа для реализации полиморфизма — возможности вызывать методы производных классов через ссылки на базовый класс.
Когда метод объявлен виртуальным, вызов метода определяется во время выполнения (динамическое связывание), а не во время компиляции. Это позволяет объекту вести себя по-разному в зависимости от своего реального типа.
Пример:
class Animal {
public virtual void Speak() {
Console.WriteLine("Животное издает звук");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("Гав-гав");
}
}
Animal a = new Dog();
a.Speak(); // Выведет "Гав-гав"
Здесь, хотя переменная a имеет тип Animal, вызывается переопределенный метод Speak() класса Dog благодаря виртуальному методу.