справа була такойю...
є інтерфейс, котрий має пару методі, клас B реалізує цей інтерфейс, а клас C наслідує клас B.
Потім в класі B я реалізував, як я думав, метод інтерфейсу, і воно стало виглядати якось так
interface I { void M(); }
class B : I {
void M() { }
void M1()
{
M();
}
}
class C : B { void M() { } }
І я сподівався, що коли я створюю клас C і викликаю метод M1, то він буде викликати метод M, котрий я 'реалізував' в класі C.
Але клас C не унаслідував реалізацію інтерфейсу в прямому сенці цього слова, він унаслідував методи класу B, один з котрих реалізує інтерфейс.
Тому метод M в класі C являв собою окремий метод, котрий просто мав таку саму назву і сигнатуру, як метод M в класі B, але не являвся реалізацією інтерфейсу