在下面的简单代码中,我试图访问SubClass中定义的方法'PrintMessage'。我创建了一个SuperClass对象,并启动了一个SubClass实例。我想明白为什么这是错的?
执行代码时出现以下错误。
错误1'.SuperClass'不包含'PrintMessage'的定义,并且没有可以找到接受类型'SuperClass'的第一个参数的扩展方法'PrintMessage'(您是否缺少using指令或程序集引用?)
class Program
{
static void Main(string[] args)
{
SuperClass objSuperClass = new SubClass();
//The following statement gives me error
objSuperClass.PrintMessage();
}
}
public abstract class SuperClass
{
}
public class SubClass : SuperClass
{
public void PrintMessage()
{
Console.WriteLine("Testing");
}
}
}
答案 0 :(得分:0)
您没有任何基类定义或“PrintMessage”的实现。在基类中定义一个抽象/具体的“PrintMethod”,并在子类中重写它。
干杯, 沙拉斯
答案 1 :(得分:0)
你可以将objSuperClass
转换为SubClass
,并且能够以下列方式调用子类方法
((SubClass)objSuperClass).PrintMessage();
如果您愿意,可以浏览this 。 (代码的修改版本)