«Пусть следующий код:Вызов метода из класса base.base?
public class MultiplasHerancas
{
static GrandFather grandFather = new GrandFather();
static Father father = new Father();
static Child child = new Child();
public static void Test()
{
grandFather.WhoAreYou();
father.WhoAreYou();
child.WhoAreYou();
GrandFather anotherGrandFather = (GrandFather)child;
anotherGrandFather.WhoAreYou(); // Writes "I am a child"
}
}
public class GrandFather
{
public virtual void WhoAreYou()
{
Console.WriteLine("I am a GrandFather");
}
}
public class Father: GrandFather
{
public override void WhoAreYou()
{
Console.WriteLine("I am a Father");
}
}
public class Child : Father
{
public override void WhoAreYou()
{
Console.WriteLine("I am a Child");
}
}
Я хочу напечатать„„объект
Как я мог бы сделать объект Child выполнить метод на“ I Am дедушка“от» детской базы .base "class? Я знаю, что могу это сделать, выполняет базовый метод (он будет печатать« Я - отец »), но я хочу напечатать« I am the GrandFather »! если есть способ сделать это, это рекомендуется в OOP Design?
Примечание: я не использую/не буду использовать этот метод, я просто хочу усилить наследование знаний.