Si chaque objet possède une copie différente des variables d'instance, où les méthodes "vivent"?Où les méthodes "vivent"?
À titre d'exemple:
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"
}
}
Je sais que "foufou" est imprimé. Ainsi sont les méthodes liées aux objets ou quelque chose?
En raison de la similitude avec une question que j'ai posée dans une langue différente, je vais lier ma question ici. La différence entre flash et java est que flash est un langage basé sur un prototype qui peut avoir une surcharge de méthode lors de l'exécution, c'est pourquoi ma question est différente. http://stackoverflow.com/questions/3783256/as2-are-functions-declared-in-a-class-stored-as-separate-instances-taking-up-mor – M2tM
Depuis le centre-ville économique, une part importante des méthodes a laissé ses tables habituelles pour quelque chose de moins glamour, des vtables virtuels –