Duda de polimorfismo...
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..
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..
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.
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.