// данный интерфейс создан для создания своего рода базового типа
// для классов А, B, и C у которых нету такового.
interface IInterface
{
void Method();
}
// в данном случае мы создаем новые классы обертки со схожими интерфейсами
// и с базовым типом
class MyA : A, IInterface { }
class MyB : B, IInterface { }
class MyC : C, IInterface { }
class Program
{
static void Main()
{
// тем самым мы работаем с классами как будто у них был базовый тип
// но без сокрытия реализации
IInterface instance = new MyA();
instance.Method();
instance = new MyB();
instance.Method();
instance = new MyC();
instance.Method();
}
}