Модификаторы классов / методов C#
Я пытаюсь сделать электронную таблицу с модификаторами класса / метода. Сама таблица может быть расположена здесь, хотя у меня есть несколько вопросов:
1) Как я читал, методы также могут быть sealed
Но какова цель этого? Способ защиты от переопределения?
2) поля также должны быть abstract
в abstract
учебный класс?
3) Может virtual
метод имеет тело в определенном объекте / классе?
3 ответа
1: да, именно это; остановка виртуального метода от переопределения снова в подклассе
2: поля никогда не бывают абстрактными; поля являются реализацией; ничто не должно быть абстрактным в абстрактном классе
3: да, в том, что виртуальный модификатор отличается от абстрактного модификатора. Оба представляют виртуальный метод - разница полностью в том, есть ли реализация в базовом классе
sealed
методы предотвращают дальнейшее переопределение цепочки наследования.sealed
Методы также должны иметь ключевое слово override.Поля не могут быть
abstract
, Поле является переменной уровня класса. Вы не можете переопределить это. Свойства и методы могут бытьabstract
, но не нужно.Разница между
virtual
а такжеabstract
методы это то, что виртуальный метод имеет реализацию. Вы можете переопределить эту реализацию в производном классе.
- да
- Нет - абстрактного поля не существует, класс абстрактный, то есть его нельзя создавать, но определенные в нем поля являются частью компоновки производных неабстрактных классов.
- да