Если DerivedClass
собирается предложить общие функциональные возможности другим классам, вы можете пометить его как абстрактный, реализовать один из методов здесь, и тогда наследникам потребуется только реализовать оставшийся метод.
Если вы не собираетесь поддерживать другой метод в данной реализации, вам все равно придется выставить метод в своем классе, но, как и в этом случае, вы обычно выбрасываете NotSupportedException
. Для void
методов вы можете просто вернуть (ничего не делать).
Наконец, если вы хотите отделить вещи, которые имеют оба метода и те, которые имеют только один, вы можете использовать интерфейсы.
public interface IBase
{
string GetString();
}
public interface IBasePlus : IBase
{
string GetStringPlus();
}
У вас может быть один класс, реализующий IBasePlus
, но вы можете предоставить его методам, которые принимают параметр типа IBase
, и в этом случае вы не увидите дополнительный метод.