如何调用基类中不存在的派生类函数?

时间:2016-03-08 17:58:45

标签: c# inheritance

这是代码。如果我想在CallFunction()中调用DerivedFunction1(),我该怎么做?

namespace Inheritance_Console
 {

class Base
{

}

class DerivedClass1 : Base
{
    public void DerivedFunction1() // this fucntion is to be called...
    {

    }
}

class DerivedClass2 : Base
{
    public void DerivedFunction2()
    {

    }
}

class Program
{
    static void Main(string[] args)
    {
        Base objBase = new DerivedClass1();

        CallFunction(objBase);
    }

    static void CallFunction(Base objBase)
    {
     //......here  

  objBase. //DerivedFunction1 is not accessible here.

    }
}

}

这不是一个实际的实施,而是一个面试问题。 我不知道要添加更多细节。请问您是否认为此处需要其他内容。

1 个答案:

答案 0 :(得分:2)

您需要将其转换为DerivedClass1

if (objBase is DerivedClass1) ((DerivedClass1) objBase).DerivedFunction1();

请注意我是否首先检查它是否真的是DerivedClass1以避免无效的强制转换异常。