Ir al contenido


Foto

Uso de inherited y override


  • Por favor identifícate para responder
6 respuestas en este tema

#1 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 02 junio 2010 - 07:29

Hola a todos
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? 
  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 02 junio 2010 - 08:15

Cuando se hace uso de la herencia en Delphi, la clase Madre tiene definidos procedimientos y funciones que cuando se genera una instancia de la clase (clase Hija) ésta última hereda el comportamiento de la madre a través del inherited.

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í:



delphi
  1.   inherited;
  2.   // Más código propio de la clase hija



o



delphi
  1.   // Más código propio de la clase hija
  2.   inherited;



o



delphi
  1.   // Más código propio de la clase hija
  2.  
  3.   inherited;
  4.  
  5.   // 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  (y)

Saludox ! :)

  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

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:
 


delphi
  1. procedure TClaseHija.HacerEsto;
  2. begin
  3.   inherited HacerEsto;
  4.   ....
  5. 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:
 


delphi
  1. TClaseBase = class
  2. public
  3. procedure HacerEsto; virtual;
  4. end;


delphi
  1. TClaseHoja = class(TClaseBase)
  2. public
  3. procedure HacerEsto; override;
  4. 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,


  • 0

#4 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 mensajes
  • LocationPinar del Río, Cuba

Escrito 02 junio 2010 - 08:54

Muchas gracias por sus aclaratorias respuestas

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  ;)

  • 0

#5 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 02 junio 2010 - 09:23

Saludos.

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.
  • 0

#6 Faust

Faust

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 213 mensajes
  • LocationDistrito Federal

Escrito 02 junio 2010 - 09:38

Ya respondí este en el otro Club y fui el primero... por un momento me sentí orgulloso  :angry:

No hay pex  :tongue:
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 junio 2010 - 10:22

Ya respondí este en el otro Club y fui el primero... por un momento me sentí orgulloso  :angry:

No hay pex  :tongue:


Que bien amigo, ¡¡¡¡¡ sigue participando !!!!!!  ^o| ^o| ^o|, me sonó a juego de azar :D :D :D

Salud OS
  • 0




IP.Board spam blocked by CleanTalk.