这是代码。如果我想在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.
}
}
}
这不是一个实际的实施,而是一个面试问题。 我不知道要添加更多细节。请问您是否认为此处需要其他内容。
答案 0 :(得分:2)
您需要将其转换为DerivedClass1
:
if (objBase is DerivedClass1) ((DerivedClass1) objBase).DerivedFunction1();
请注意我是否首先检查它是否真的是DerivedClass1
以避免无效的强制转换异常。