Я, вероятно, делаю это совершенно неправильно ..
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 также переопределяет методы?