在Java中如何實現繼承?例如,考慮一下:在Java中如何實現繼承?
class A {
public void foo() {
System.out.print("A");
}
}
class B extends A {
...
}
class Test {
public static void main(String[] args) {
B test = new B();
test.foo(); // how is foo() called?
}
線下,將編譯器只轉儲A.foo()的定義爲B類的身體嗎?像
class B extends A {
...
public void foo() {
System.out.print("A");
}
}
或者是foo以某種方式在A類中查找並在那裏調用?
'B.foo()'不會首先編譯,因爲它不是一個靜態方法。你的意思是'test.foo()'? (但不,編譯器不會複製方法實現...) –
B.foo();根本不編譯。 –
糟糕。我的意思是test.foo();檢查更新的版本。 –