Ao contrário dos métodos, os atributos da superclasse não podem ser redefinidos na subclasse.
x
na superclasse e outro com o mesmo nome é definido na subclasse, o atributo da superclasse continua a existir.Exemplo:
xpublic class A {
public int x = 0;
public void m(){
System.out.println("A" + x);
}
}
public class B extends A {
public int x = 5;
public void m(){
System.out.println("B" + x);
}
}
Numa classe cliente de A
e de B
:
xA oa = new A();
B ob = new B();
oa.m(); // imprime A0 no standard output
ob.m(); // imprime B5 no standard output
Anterior: 14.8. Ainda a redefinição de métodos
Seguinte: 15. Polimorfismo e ligação dinâmica