Chciałbym wiedzieć, czy jest możliwy dostęp do podstawowej metody wirtualnej za pomocą klasy dziedziczącej (która przesłania metodę).Dostęp do wirtualnej metody klasy Parent z dziedziczenia obiektu klasy Child
Wiem, że to nie jest dobra praktyka, ale chcę to wiedzieć, jeśli jest to technicznie możliwe. Nie stosuję się do takich praktyk, prosząc tylko z ciekawości.
Widziałem kilka podobnych pytań, ale nie znalazłem odpowiedzi, której szukam.
Przykład:
public class Parent
{
public virtual void Print()
{
Console.WriteLine("Print in Parent");
}
}
public class Child : Parent
{
public override void Print()
{
Console.WriteLine("Print in Child");
}
}
class Program
{
static void Main(string[] args)
{
Child c = new Child();
//or Parent child = new Child();
child.Print(); //Calls Child class method
((Parent)c).Print(); //Want Parent class method call
}
}
Proszę wyjaśnić downvotes. Każdy link do istniejącego podobnego pytania (z zadowalającą odpowiedzią) na stackoverflow jest akceptowalną odpowiedzią. Dzięki.
Odpowiedziałem praktycznie to samo pytanie wczoraj, tutaj; http://stackoverflow.com/questions/14491513/calling-both-base-and-derived-methods/14491581#14491581 –
jawnie wywołaj metodę klasy Parent Print(). Oczywiście, jak zauważyłeś, architektura ta jest próbą odwrócenia zachowania polimorficznego - niezbyt mądra –
@AdityaSihag; to nie działa dla nadpisanych metod. Tylko "nowe", jak na powyższym linku. –