Soy nuevo en Java, y he leído algunos tutoriales sobre cómo reemplazar los métodos, pero un ejemplo que estoy viendo no funciona de la manera que esperaba. Por ejemplo, tengo el código:Anulando un Método Java
public class A{
public void show(){
System.out.println("A");
}
public void run(){
show();
}
public static void main(String[] arg) {
new A().run();
}
}
public class B extends A{
@Override
public void show(){
System.out.println("B");
}
}
Cuando instanciar y llamar B.run(), yo esperaría ver "B" salen. Sin embargo, veo "A" en su lugar. ¿Qué estoy haciendo mal?
Editar: Sí, las clases están en dos archivos separados. Se muestran juntos por brevedad.
Editar: No estoy seguro de cómo se está instanciando B, ya que está siendo realizado por un programa de terceros que utiliza un cargador de clases.
Editar: Más información sobre el programa de terceros. Comienza llamando a A.main(), que inicialmente no se mostró (lo siento). Asumo que necesito hacer "nuevo A(). Run();" más genérico para usar el nombre de la clase actual. ¿Es eso posible?
¿Cómo está instanciando y llamando a esto? –
@Prasoon No se mencionó el archivo, solo las clases. No pudimos inferir los archivos reales en los que estaban. – KLE