Sobes.tech
Junior
124
questionbank

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

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

sobes.tech AI

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

Особенности:

  • Объявляется в базовом классе с virtual.
  • Переопределяется в производном классе с override.
  • При вызове виртуального метода через ссылку на базовый класс, фактически выполняется версия метода из объекта, на который ссылается переменная (полиморфизм).
  • Нельзя объявить виртуальными методы без тела (абстрактные), статические методы и конструкторы.

Пример:

// Базовый класс
public class Shape
{
    // Виртуальный метод для рисования
    public virtual void Draw()
    {
        // Реализация по умолчанию
        Console.WriteLine("Рисуем общую форму");
    }
}

// Производный класс
public class Circle : Shape
{
    // Переопределение виртуального метода
    public override void Draw()
    {
        // Реализация для круга
        Console.WriteLine("Рисуем круг");
    }
}

// Использование
public class Program
{
    public static void Main(string[] args)
    {
        Shape shape = new Circle(); // Ссылка на базовый класс, объект производного
        shape.Draw(); // Вызывается переопределенный метод Circle.Draw()
    }
}