Duda de polimorfismo...

Javi
07 de Diciembre del 2003
Hola, imaginen que tengo una clase abstracta con un método abstracto, de la cual deriva otra clase. Esta otra clase tiene instanciado el método de la clase padre de tal manera que imprima un mensaje en pantalla. Podria hacer lo siguiente???
ClasePadre CP = new ClaseHija();
y luego en el código poner...
CP.metodoqueescribeenpantalla();
De tal manera que se me imprima el mensaje al que se hace referencia en la clase hija????
Lo que quiero es tener varias clases que deriven de la clase principal con diversos mensajes. Así dependiendo de qué objeto se instancie, me imprimira un mensaje u otro, pero siempre a través de una instancia de la clase padre..

Thozz
07 de Diciembre del 2003
Sí, claro... precisamente ése es el secreto de las clases y métodos abstractos. Puedes referenciar los objetos con el nombre de la clase abstracta y ejecutar el método usando esa referencia.

La propia JVM luego determina qué método ejecutar según la instancia del objeto referenciado por la ClasePadre. Eso que escribes de "una instancia de la clase padre"... piensa que en vez de la clase abstracta Padre defines una interfaz con ese método.

Así, referencias objetos que implementen esa interfaz con su nombre, y el método se ejecuta con la clase que la implementa. Puede parecer algo burdo... pero se asemeja bastante a los método abstractos.