如果派生类存在,则调用派生类方法

时间:2017-02-09 13:17:24

标签: c#

我有一个界面

interface ISampleInterface 
{
     void  SampleMethod();
}

和一个继承自接口

的类
public class ImplementationClass : ISampleInterface
{
    // Explicit interface member implementation: 
    public virtual void SampleMethod()
    {
        Console.WriteLine("Base");
    }
}
public class derived : ImplementationClass
{
    public override void SampleMethod()
    {
        Console.WriteLine("child");
    }
}

现在我想从派生类调用SampleMethod如果用户创建派生类,如果没有,那么从ImplementationClass调用基类, 基本上我必须在运行时决定天气派生类是否存在SampleMethod实现,如果是,则调用else转到基础SampleMethod

1 个答案:

答案 0 :(得分:1)

  

我想从Derived类调用SampleMethod但派生类是由其他一些模块创建的,我必须检查派生类存在的天气如果存在则调用派生方法调用派生方法否则调用基类mathod

根据您的问题的评论,这段代码已经按照您的描述运行了 - 由于多态性,创建的对象将调用它最相关的方法。

在你的情况下,你覆盖它的基类的虚方法,这是将要调用的方法。