ООП разъяснения - PullRequest
       8

ООП разъяснения

2 голосов
/ 09 октября 2009

как предотвратить переопределение метода базового класса подклассом

Ответы [ 3 ]

10 голосов
/ 09 октября 2009

Вам не нужно делать ничего особенного: методы не переопределяются по умолчанию. Скорее, если вы хотите, чтобы метод был переопределенным, вам нужно добавить ключевое слово virtual в его объявление.

Обратите внимание, что даже если метод не переопределяемый, производный класс может скрыть его. Больше информации здесь: C # использование виртуальных ключевых слов + переопределение против новых

7 голосов
/ 09 октября 2009

Если у вас есть виртуальный метод в базовом классе (ClassA), который переопределяется в унаследованном классе (ClassB), и вы хотите, чтобы класс, который наследует от ClassB, переопределял этот метод, тогда вы должны пометить этот метод как «запечатанный» в ClassB.

public class ClassA
{
    public virtual  void Somemethod() {}
}

public class ClassB : ClassA
{
    public sealed override void Somemethod() {}
}

public class ClassC : ClassB
{
     // cannot override Somemethod here.
}
0 голосов
/ 11 ноября 2011

Вы также можете использовать ABSTRACT для родительского класса. В результате вы не можете переопределить подкласс

abstract main{
}

class sub extent main{
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...