Hola, queridos javarashitas. Seguramente a todos los entrevistados se les hizo una pregunta sobre el polimorfismo. Entonces, me interesa su respuesta y la evaluación de su respuesta por parte del entrevistador. Tuve 2 minientrevistas en las que me preguntaron sobre el polimorfismo y en cada una de ellas el entrevistador no quedó satisfecho con mi respuesta. En resumen, mi respuesta se redujo a anular y asignar una referencia de clase principal a un objeto de una clase secundaria. Algo como esto:
class Parent{
void saySomething(){
System.out.println("Parent!");
}
}
class Child1 extends Parent{
@Override
void saySomething(){
System.out.println("Child1!");
}
}
class Child2 extends Parent{
@Override
void saySomething(){
System.out.println("Child2!");
}
}
class Test{
public static void main(String[] args){
Parent p1 = new Parent();
Parent p2 = new Child1();
Parent p3 = new Child2();
p1.saySomething();
p2.saySomething();
p3.saySomething();
}
}
---------------
Output:
Parent!
Child1!
Child2!
Esto es exactamente lo que está escrito en el sitio web de Oracle . Ivan Golovach dice que el polimorfismo en Java se implementa usando herencia (lo que mostré en el ejemplo) y usando genéricos. Entonces, ¿dónde está la verdad y cómo responder en una entrevista? Tengo una entrevista importante próximamente y no quiero volver a equivocarme con esta pregunta aparentemente básica.
GO TO FULL VERSION