Qué sucede cuando las clases base y derivadas tienen variables con el mismo nombre
Considera elint a
variables en estas clases:
class Foo {
public int a = 3;
public void addFive() { a += 5; System.out.print("f "); }
}
class Bar extends Foo {
public int a = 8;
public void addFive() { this.a += 5; System.out.print("b " ); }
}
public class test {
public static void main(String [] args){
Foo f = new Bar();
f.addFive();
System.out.println(f.a);
}
}
Entiendo que el métodoaddFive()
se ha anulado en la clase secundaria y en la prueba de clase cuando la referencia de clase base que hace referencia a la clase secundaria se usa para llamar al método anulado, la versión de clase secundaria deaddFive
se llama
Pero, ¿qué pasa con la variable de instancia públicaa
? ¿Qué sucede cuando tanto la clase base como la clase derivada tienen la misma variable?
La salida del programa anterior es
b 3
¿Como sucedió esto