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

Что такое виртуальный метод в C#?

Sobes Copilot

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

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

sobes.tech AI

Виртуальный метод — это метод базового класса, который может быть переопределен (реализован по-другому) в производном классе. Он объявляется с ключевым словом virtual.

public class Animal
{
    // Объявление виртуального метода
    public virtual void MakeSound()
    {
        Console.WriteLine("Generic animal sound");
    }
}

public class Dog : Animal
{
    // Переопределение виртуального метода
    public override void MakeSound()
    {
        Console.WriteLine("Woof!");
    }
}

public class Cat : Animal
{
    // Переопределение виртуального метода
    public override void MakeSound()
    {
WriteLine("Meow!");
    }
}

При вызове виртуального метода на экземпляре производного класса, даже если ссылка имеет тип базового класса, будет вызвана реализация из производного класса (полиморфизм).

Animal myAnimal = new Dog();
myAnimal.MakeSound(); // Выведет "Woof!"

Animal anotherAnimal = new Cat();
anotherAnimal.MakeSound(); // Выведет "Meow!"