Модификаторы классов / методов C#

Я пытаюсь сделать электронную таблицу с модификаторами класса / метода. Сама таблица может быть расположена здесь, хотя у меня есть несколько вопросов:

1) Как я читал, методы также могут быть sealedНо какова цель этого? Способ защиты от переопределения?

2) поля также должны быть abstract в abstract учебный класс?

3) Может virtual метод имеет тело в определенном объекте / классе?

3 ответа

Решение

1: да, именно это; остановка виртуального метода от переопределения снова в подклассе

2: поля никогда не бывают абстрактными; поля являются реализацией; ничто не должно быть абстрактным в абстрактном классе

3: да, в том, что виртуальный модификатор отличается от абстрактного модификатора. Оба представляют виртуальный метод - разница полностью в том, есть ли реализация в базовом классе

  1. sealed методы предотвращают дальнейшее переопределение цепочки наследования. sealed Методы также должны иметь ключевое слово override.

  2. Поля не могут быть abstract, Поле является переменной уровня класса. Вы не можете переопределить это. Свойства и методы могут быть abstract, но не нужно.

  3. Разница между virtual а также abstract методы это то, что виртуальный метод имеет реализацию. Вы можете переопределить эту реализацию в производном классе.

  1. да
  2. Нет - абстрактного поля не существует, класс абстрактный, то есть его нельзя создавать, но определенные в нем поля являются частью компоновки производных неабстрактных классов.
  3. да
Другие вопросы по тегам