Есть ли виртуальный класс в С#?

Я прочитал о виртуальных методах в С#. Существует ли в С# понятие виртуального класса? Является ли абстрактный класс в С# и виртуальном классе в С++ одинаковым?

Спасибо заранее.

Ответ 1

В С# нет такой вещи, и это действительно не нужно, поскольку наследование множественной реализации не поддерживается. Создание абстрактного класса действительно означает, что вы не можете создавать экземпляры этого класса, и они могут быть не полностью реализованы (например, могут содержать абстрактные методы).

Ответ 2

В С# нет виртуальных классов. Абстрактный класс не является тем же, поскольку вы не можете создать экземпляр абстрактного класса.

Вы можете сделать что-то противоположное, отметив его запечатанный, что не позволяет ему наследоваться.

Ответ 3

Я опишу ссылку на эту более раннюю запись SO: В С++, что такое виртуальный базовый класс?

Как уже упоминалось, поскольку С# не имеет множественного наследования, необходимость иметь "виртуальный базовый класс", который ограничивает множественное наследование, не требуется, следовательно, это не относится к С#. Только члены в С# могут быть виртуальными.