从继承Child Class Object访问Parent Class虚方法

Sha*_*ngh 5 c# oop inheritance

我想知道是否可以使用继承类(覆盖方法)对象来访问基本虚方法.

我知道这不是一个好习惯,但我想知道的原因是技术上是否可行.我不遵循这样的做法,只是出于好奇而提出要求.

我确实看到了一些类似的问题,但我没有得到我正在寻找的答案.

例:

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
    }
}
Run Code Online (Sandbox Code Playgroud)

请解释downvotes.stackoverflow上任何现有类似问题(具有令人满意的答案)的链接都是可接受的答案.谢谢.

Jes*_*cer 4

根据我评论的链接副本,您可以使用一些反射技巧来做到这一点:

static void Main(string[] args)
{
    Child child = new Child();
    Action parentPrint = (Action)Activator.CreateInstance(typeof(Action), child, typeof(Parent).GetMethod("Print").MethodHandle.GetFunctionPointer());

    parentPrint.Invoke();
}
Run Code Online (Sandbox Code Playgroud)