我正在尝试在子类中使用虚方法覆盖抽象类中的抽象方法。我(直到现在?)理解抽象和虚方法之间的区别。
显然,我无法这样做,但我的问题是...为什么呢?基于此处接受的答案和以下情况,我只是看不到问题所在:
显然,我所做的是将一个顶级父类与两个继承子类和另一个从其中一个继承的类结合起来。基于我在上面发布的链接中接受的答案:
显然,我无法这样做,但我的问题是...为什么呢?基于此处接受的答案和以下情况,我只是看不到问题所在:
public abstract class TopLevelParent
{
protected abstract void TheAbstractMethod();
}
public class FirstLevelChild1 : TopLevelParent
{
protected override void TheAbstractMethod()
{
}
}
public class FirstLevelChild2 : TopLevelParent
{
protected virtual override void TheAbstractMethod()
{
//Do some stuff here
}
}
public class SecondLevelChild : FirstLevelChild2
{
//Don't need to re-implement the method here... my parent does it the way I need.
}
显然,我所做的是将一个顶级父类与两个继承子类和另一个从其中一个继承的类结合起来。基于我在上面发布的链接中接受的答案:
"虚函数基本上是在说,这里是可能或不可能对子类有足够好的功能性。所以如果它足够好,就使用这个方法,否则,重写我,并提供你自己的功能性。"
第二级子类将从其父类继承虚方法,从而满足其最顶层父类的抽象方法的实现要求……问题在哪里呢?
我似乎缺少某些详细信息,这妨碍了我对此的理解……