Cur*_*ley 1 java inheritance overriding
class A
{
public void Foo() {}
}
class B extends A
{
}
class C extends B
{
public void Foo() {}
}
Run Code Online (Sandbox Code Playgroud)
即使B没有覆盖它,C的Foo()是否会覆盖A?或者我是否必须在B中添加一个存根,为每个我想要在C中覆盖的方法调用超级方法?
即使B没有提到它,Foo由于继承,它仍然应该可用.通过扩展,Foo也可以用于子类C,并且由于多态性应该能够被覆盖.
因此,C的实例将使用c.foo()(但是它被定义),其中A和B的实例将被使用,a.foo()因为它们尚未被覆盖.