Возможно ли реализовать классы с наследованием так, чтобы в наследнике находился свой метод, который и так был до этого расписан в базовом классе?

Чтобы было более понятно, привожу свой пример:
Базовый класс:

internal class State : IFunctional 
{

   public void Add(string name, string desc)
   {
      ...
   }

}

Наследник:

internal class Country : State, IFunctional
{

   public new void Add(string t_name, string t_desc)
   {
      ...
   }

}

Таким образом, я думал, что, работая с объектом типа Country, я смогу использовать обе реализации метода Add, скажем, например, в случае как с интерфейсами, то есть с помощью явной реализации. Однако данный способ оказался нереализуем, а других путей я не нашел, поэтому пришлось менять название в одном из классов, чтобы они не совпадали и одна реализация не перекрывала другую (Add -> AddState). Можно ли каким-то способом добиться того результата, который мне нужен, или это вообще не представляется возможным?


Ответы (1 шт):

Автор решения: Igor

данный способ оказался нереализуем

После этих слов желательно показать "реализацию".


Country c = new Country();
c.Add("a", "b"); // from Country
((State)c).Add("a", "b"); // from State

State c = new Country();
c.Add("a", "b"); // from State
((Country)c).Add("a", "b"); // from Country
→ Ссылка