Ejercicios polimórficos comprensión 2

¿Cuál es el resultado de ejecutar el siguiente código?

public class Test {
    
    
    public static void main(String[] args) {
    
    
        Base base = new Sub();
        base.add(1, 2, 3);
        Sub sub = (Sub) base;
        sub.add(1, 2, 3);
    }

}

class Base {
    
    
    public void add(int t, int... arr) {
    
    
        System.out.println("Base");
    }
}

class Sub extends Base {
    
    

    public void add(int t, int[] arr) {
    
    
        System.out.println("Sub1");
    }

    public void add(int t, int a, int b) {
    
    
        System.out.println("Sub2");
    }
}

resultado de la operación:

Sub1
Sub2

Puntos de conocimiento:

  • El objeto base, en lo que respecta al método, la compilación mira a la izquierda y la operación mira a la derecha.
  • Anulando el método de la clase padre, el tipo y número de parámetros formales deben ser los mismos que el método anulado de la clase padre, por lo que sub2 no es una reescritura, sino una sobrecarga de sub1.
  • Los parámetros deformables son equivalentes a matrices.
  • El método para determinar el número de parámetros formales con coincidencia de prioridad de sobrecarga.

Supongo que te gusta

Origin blog.csdn.net/AmorFati1996/article/details/108654743
Recomendado
Clasificación