Jurijus Zaksas
Искусственный Интеллект
(469466)
4 года назад
>ОБЯЗАН тоже иметь этот модификатор?
Ну проверить-то - дело 2-х секунд. Tакой модификатор вполне может быть обязательным, чтобы компилятор работал быстрее.
>тоже унаследуется, но его уже просто нельзя будет переопределить?
М-м-м... Через overload нельзя. Но переписать его можно (но ни в коем случае не нужно, потому что потом концов не найдешь):
class foo1
{
protected virtual void boo()
{
}
}
class foo2: foo1
{
protected sealed override void boo()
{
}
}
class foo3 : foo2
{
protected new void boo()
{
base.boo();
}
}
Хотелось бы кое-что уточнить, касающиеся abstract. Как я понимаю если в каком-либо классе содержится abstract метод, то класс ОБЯЗАН тоже иметь этот модификатор? Так ли это?
И ещё одно уточнение. Если в классе реализован virtual метод от другого класса, и на этом реализованом методе есть модификатор sealed, то если весь этот класс станет дочерним, то sealed метод тоже унаследуется, но его уже просто нельзя будет переопределить? Прав ли я?