Witajcie,
Co należy zrobić aby klasy, które są potomnymi przesłoniły zmienną z klasy bazowej?
class A {
int i = 1;
void test() {
System.out.println(i);
}
}
class A1 extends A {
int i = 2;
}
class A2 extends A {
int i = 3;
}
public class JavaApplication2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
A1 obj1 = new A1();
A2 obj2 = new A2();
System.out.println(obj1.i);
System.out.println(obj2.i);
obj1.test();
obj2.test();
}
}
bo wynik dostaję taki:
2
3
1
1
Czyli metoda z klasy bazowej jest dziedziczona ale wartość zmiennej i brana jest z klasy bazowej a nie z klasy potomnej.