[C con Clase] ¿Es la 'override' (¿sobrescritura?) un tipo de polimorfismo?

Steven Davidson srd4121 en njit.edu
Jue Ene 19 11:57:31 CET 2012


Hola Ignacio,

2012/1/19 Ignacio Moreno Doblas <imdoblas en gmail.com>:
> La pregunta no puede ser más clara.
>
> ¿Es la override (¿sobrescritura?) polimorfismo?
>
> Sí o no; y lo más importante, ¿por qué?
>

Tal y como planteas la pregunta, la respuesta es "no". La
sobrescritura es un reemplazo de la definición de una función miembro
en diferentes clases. El polimorfismo se basa en tratar a un objeto
(polimórfico) como si fuere de una clase diferente, dentro de una
misma jerarquía, pero conociendo su clase original y auténtico a la
hora de invocar sus funciones virtuales.

Para sacar el máximo partido al polimorfismo, se usa la sobrescritura,
pero la sobrescritura no implica polimorfismo. Lo mismo ocurre con el
hecho de que el polimorfismo funciona usando punteros (o referencias)
a los objetos, pero el hecho de usar punteros (o referencias) no
implica que estemos usando polimorfismo.

> Esta pregunta surge por una duda en el siguiente ejemplo:
>

No se envió el ejemplo, así que no puedo aclarar la duda en ello.


Espero que lo anterior te ayude.

Steven




Más información sobre la lista de distribución Cconclase