Question: Le résultat du code suivant est "5 A" et "10 B". Comment est-il possible que pour b.print(), this.num est une référence à un objet de classe A et this.getClass() est une référence à un objet de classe B?Héritage Java - accès private variable/getClass()
Superclass A
public class A {
private int num;
public A(int num) {
this.num = num;
}
public void print() {
System.out.println(this.num + " " + this.getClass().getName());
}
}
Sous-classe B
public class B extends A {
public B(int num) {
super(num);
}
}
Méthode principale
A a = new A(5);
B b = new B(10);
a.print();
b.print();
'Mettre this.' en face d'un appel de méthode n'a pas d'effet. –
Ce sont deux objets différents, qui obtiennent tous les deux le numéro qu'ils ont passé. Je ne vois pas pourquoi cela est déroutant. – byxor