【发布时间】:2014-01-09 06:59:56
【问题描述】:
无法调用基类的方法,
public class MyBaseClass
{
public void PrintTheValue(int inputValue)
{
Console.WriteLine(" Printed from Base class method " + inputValue);
}
}
public class MyDerivedClass : MyBaseClass
{
public void PrintTheValue(long inputValue)
{
Console.WriteLine(" Printed from Derived class method " + inputValue);
}
}
如果我尝试调用该函数,
public static void Main()
{
long longValue = 5;
int intValue = 6;
MyDerivedClass derivedObj = new MyDerivedClass();
derivedObj.PrintTheValue(longValue);
derivedObj.PrintTheValue(intValue);
Console.Read();
}
输出让我吃惊,
从派生类方法 5 打印
从派生类方法6打印
为什么我不能调用基类的函数?
我知道什么是重载和覆盖,我认为它应该调用基类方法,
我也尝试过显式转换,derivedObj.PrintTheValue((int)longValue); 但结果相同。
【问题讨论】:
标签: c# overriding overloading