可以说我有这个:
class A { }
class B : A { }
class C : B { }
class Foo
{
public void Bar(A target) { /* Some code. */ }
}
class AdvancedFoo : Foo
{
public void Bar(B target)
{
base.Bar(target);
// Some code.
}
}
sealed class SuperiorFoo : AdvancedFoo
{
public void Bar(C target)
{
base.Bar(target);
// Some code.
}
}
如果我运行,将调用哪个重载new SuperiorFoo().Bar(new C())
,为什么?我猜它会被级联调用,但我不知道为什么以及是否保证了这种行为。
更新
那么,base.
两者都适用于Foo
和AdvancedFoo
for SuperiorFoo
,那么将调用哪一个,为什么?