Вы не можете этого сделать. Вам следует , вероятно, проектировать иерархию классов по-другому, потому что выглядит странным, что C наследуется от B, а ведет себя как A.
В любом случае, это может иметь смысл в вашем случае. Затем вы должны сделать другой метод в A, который вы не будете переопределять:
class A {
protected virtual void basicM() {}
public virtual void M() { basicM(); }
}
class C {
public override void M() { basicM(); }
}
Кстати, если вы называете метод, как я сделал в примере, то вам, вероятно, следует переосмыслить все это. Если эта иерархия оправдана, то basicM
, вероятно, выполняет что-то, что заслуживает того, чтобы быть отдельным методом с другим именем, возможно, даже публичным методом.