Si tengo dos clases, A y B,Java llamando al método subclase cuando se trata de utilizar el método de la clase padre
public class A {
public int test() {
return 1;
}
}
public class B extends A{
public int test() {
return 2;
}
}
Si hago: A a1 = new B()
, luego vuelve a1.test()
2 en vez de 1 como se desee. ¿Es esto solo una peculiaridad de Java, o hay alguna razón para este comportamiento?
Esto se llama 'enlace dinámico', también debe conocer el' enlace estático'. Se vuelve un poco más complicado cuando intenta anular (de hecho ocultar) los campos en lugar de métodos. Encontrará muchas preguntas sobre esto en SO o google. –