Я прочитал о виртуальных методах в С#. Существует ли в С# понятие виртуального класса? Является ли абстрактный класс в С# и виртуальном классе в С++ одинаковым?
Спасибо заранее.
Ответ 1
В С# нет такой вещи, и это действительно не нужно, поскольку наследование множественной реализации не поддерживается. Создание абстрактного класса действительно означает, что вы не можете создавать экземпляры этого класса, и они могут быть не полностью реализованы (например, могут содержать абстрактные методы).
Ответ 2
В С# нет виртуальных классов. Абстрактный класс не является тем же, поскольку вы не можете создать экземпляр абстрактного класса.
Вы можете сделать что-то противоположное, отметив его запечатанный, что не позволяет ему наследоваться.
Как уже упоминалось, поскольку С# не имеет множественного наследования, необходимость иметь "виртуальный базовый класс", который ограничивает множественное наследование, не требуется, следовательно, это не относится к С#. Только члены в С# могут быть виртуальными.