Скажем, у меня есть следующий код:C# Наследование
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
.
Возможно ли это?
Если вы сделаете это случайно, оно выдаст предупреждение. добавьте «новый» квалификатор, и он закрывается ... –