如果每個對象都有不同的實例變量副本,那麼方法在哪裏「活着?」方法在哪裏?
作爲一個例子:
class A {
public foo() {
System.out.println("foo");
}
}
class B extends A {
public foo() {
System.out.println("foofoo");
}
}
public class Main {
public static void main(String[] args) {
A a = new B();
a.foo(); // "foofoo"
}
}
我知道 「foofoo」 被打印。那麼方法是綁定到對象還是什麼?
由於與我用不同語言提出的問題相似,我將在此處鏈接我的問題。 flash和java的區別在於flash是一種基於原型的語言,它可以在運行時發生方法覆蓋,這就是爲什麼我的問題不同。 http://stackoverflow.com/questions/3783256/as2-are-functions-declared-in-a-class-stored-as-separate-instances-taking-up-mor – M2tM 2010-10-05 04:17:45
由於經濟繁華,一大片方法已經離開了其通常的桌子去尋找不那麼迷人的虛擬桌面 – 2010-10-05 04:20:52