Допустим, у меня есть следующий код:
interface ISomeInterface
{
void DoSomething();
void A();
void B();
}
public abstract class ASomeAbstractImpl : ISomeInterface
{
public abstract void A();
public abstract void B();
public void DoSomething()
{
// code here
}
}
public class SomeImpl : ASomeAbstractImpl
{
public override void A()
{
// code
}
public override void B()
{
// code
}
}
Проблема в том, что я хочу, чтобы метод ASomeAbstractImpl.DoSomething()
был запечатан (окончательно), чтобы никакой другой класс не мог его реализовать.
Поскольку код теперь SomeImpl
может иметь метод с именем DoSomething()
, и его можно вызывать (он не будет переопределять метод с тем же именем из абстрактного класса, поскольку он не помечен как виртуальный), но я бы хотел обрезать возможность реализации такого метода в SomeImpl
классе.
Возможно ли это?