Uso de inherited y override
#1
Escrito 02 junio 2010 - 07:29
Sera porque lo he usado muy poco, y cuando lo he hecho es en procedimientos ya elaborados, pero aun no entiendo el funcionamiento de inherited y override
Me podrian explicar que hace cada uno, y en que situación es cuando se deben emplear?
#2
Escrito 02 junio 2010 - 08:15
Supongamos que la clase Madre en su evento OnCreate muestra algún mensaje a través de un showmessage... al generar una clase Hija de ella, en el evento OnCreate de la Hija aparecerá la palabra inherited que significa que la clase Hija también mostrará el mensaje definido en la clase Madre...
Aquí hay dos cosas interesantes:
1. Si tu suprimes la palabra reservada inherited de la clase Hija, ésta no tomará el comportamiento de la clase Madre.
2. La clase Hija puede hacer cosas adicionales al inherited de la clase Madre... algo así:
inherited; // Más código propio de la clase hija
o
// Más código propio de la clase hija inherited;
o
// Más código propio de la clase hija inherited; // Más código propio de la clase hija
En caso del override se usa cuando en la clase Madre se ha declarado un procedimiento o función virtual y permite sobreescribir las funciones pertenecientes a la clase Madre, en la clase Hija...
Espero que haya quedado un poco claro y te recomiendo amigo, que hagas un ejemplito usando herencia en Delphi para que puedas aplicar y explicarte a ti mismo de manera más clara éstos dos conceptos....
Cualquier duda, no dudes en preguntar
Saludox !
#3
Escrito 02 junio 2010 - 08:39
No es que quiera hacer propaganda, pero hay tos manuales que pueden ser de apoyo para comprender el tema:
Concepto: Herencia
Concepto: Polimorfismo
Para hacerlo sencillo, inherited se emplea cuando se desea invocar el método de la clase Base.
Por ejemplo:
procedure TClaseHija.HacerEsto; begin inherited HacerEsto; .... end;
En este ejemplo, el método HacerEsto de la clase Hija invoca al mismo método de la clase padre. Los puntos suspensivos son para indicar que luego contínua con otras sentencias.
De este modo podemos invocar a cosas de la clase base y luego añadir nuevas cosas, si se necesita.
Override es la cláusula que se añade al final del método sobreescrito en la clase hija. Es una "marca" que requiere el compilador para reconocer que métodos han sido sobreescritos. De otro modo el compilador nos alertará con unos warnings.
Por ejemplo:
TClaseBase = class public procedure HacerEsto; virtual; end;
TClaseHoja = class(TClaseBase) public procedure HacerEsto; override; end;
Nota como en la clase base se añadió la cláusula virtual. Luego en la clase hija se añade override para indicar que esta lo sobreescribe.
Saludos,
#4
Escrito 02 junio 2010 - 08:54
Mas o menos tengo idea de lo que es herencia y polimorfismo, pero cuando lo di en la universidad fue usando C++, nunca lo he aplicado en Delphi
Y ahora ya lo estoy entendiendo en delphi
#5
Escrito 02 junio 2010 - 09:23
Si necesitas más referencia busca el libro de Ian Marteens La Cara Oculta de Delphi 4 en formato pdf; a su vez puedes buscar también el libro de Marco Cantú llamado Essential Pascal en formato pdf.
Esos documentos son gratuitos.
#6
Escrito 02 junio 2010 - 09:38
No hay pex
#7
Escrito 02 junio 2010 - 10:22
Ya respondí este en el otro Club y fui el primero... por un momento me sentí orgulloso
No hay pex
Que bien amigo, ¡¡¡¡¡ sigue participando !!!!!! , me sonó a juego de azar
Salud OS