Есть следующая структура классов:
interface IBase
{
void Method();
}
class Derived : IBase
{
public void Method() //реализация метода из интерфейса
{
Console.WriteLine("Вызван метод, определенный в интерфейсе");
}
public void MethodOnlyForDerivedClass() //определение метода, нужного только в Derived
{
Console.WriteLine("Вызван метод, определенный в классе");
}
}
Main:
static void Main(string[] args)
{
IBase instance1 = new Derived();
//так
Derived instance2 = (Derived)instance1;
instance2.MethodOnlyForDerivedClass();
//или так
((Derived)instance1).MethodOnlyForDerivedClass();
}
Как построить иерархию, чтобы вызывать методы только производного класса было проще? Например так:
IBase instance1 = new Derived();
instance1.MethodOnlyForDerivedClass();