probleme heritage overriding
Bonjour tout le monde,
je voudrais comprendre pourquoi le code suivant écris "5" et pas "6"...
Pour ma part, dans la main, t.getObject retourne une instance de B1, et x de B1 vaut 6.
Merci pour tous vos réponses!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class A1 {
public int x=5;
}
class B1 extends A1{
public int x=6;
}
public class test{
public int x=0;
public A1 getObject(){
return new A1();
}
public static void main(String[] args) {
test t=new testT();
System.out.println(t.getObject().x);
}
}
class testT extends test{
public B1 getObject(){
return new B1();
}
} |