【发布时间】:2011-11-24 15:58:53
【问题描述】:
我可能完全错了..
public class BaseClass
{
public string result { get; set; }
public BaseClass(){}
public BaseClass(string x) {
result = doThing(x);
}
public virtual string doThing(string x)
{
return x;
}
}
public class DerivedClass : BaseClass
{
public DerivedClass(){}
public DerivedClass(string x):base(x){}
public override string doThing(string x)
{
return "override" + x;
}
}
我希望新的 DerivedClass("test") 具有“overridetest”的结果,但它没有:它调用 doThing 的基本方法。我错过了什么吗?我是否需要创建一个 AbstractClass 并让 BaseClass 和 DerivedClass 都继承自它,Derived 类也覆盖方法?
【问题讨论】:
-
它并不完全是重复的——这与 ste 的有效性有关,在我的情况下,派生的 doThing 永远不会被调用。
标签: c# class inheritance