• Jueves 2 de Mayo de 2024, 01:55

Autor Tema:  Polimorfismo Vs. Sobrecargado  (Leído 2478 veces)

Deiv

  • Miembro activo
  • **
  • Mensajes: 67
  • Nacionalidad: bo
    • Ver Perfil
Polimorfismo Vs. Sobrecargado
« en: Sábado 25 de Noviembre de 2006, 14:25 »
0
Hola,
Estoy empezando mis primeros pasos con la POO y me preguntaba sobre el polimorfismo y tenía una confusión con Sobrecargado (overload). He adjuntado un archivo DOC, donde hice las reducciones correspondientes de sus hojas originales para poderlo comprimir y adjuntar en este mi post.

a.- Si pudieran aclararme por favor, en la Pag.1 la Procedure Inicializar, no es un método virtual como veo, entonces ¿como debo entender ese método en las clases hijas? ya que llevan diferentes parámetros y una implementación interesante.

b.- La procedure Dibujar, no sé si el texto está mal transcrito por el autor, pero no veo virtual ni override en las clases hijas?

c.- En el otro ejemplo, Pag.3 y Pag.5 el CONSTRUCTOR Create tiene diferentes parámetros tanto la Clase Madre como la hija, ¿esto se puede?

De repente en vuestras palabras (indicaciones) llegue a tener una mejor explicación de lo que estoy leyendo y no voy comprendiendo algunos aspectos, les agradeceré mucho. Y mi última pregunta:

d.- Cual es la forma más óptima de trabajar, utilizar Polimorfismo o Sobrecargado?
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Polimorfismo Vs. Sobrecargado
« Respuesta #1 en: Sábado 25 de Noviembre de 2006, 15:08 »
0
Disculpa que no te pueda responder todas tus dudas, lo que pasa es que ahora te estoy respondiendo en el trabajo; en casa no tengo mucho tiempo, ahora tengo epoca de paricales (estudio abogacia), y eso me saca  mucho tiempo, y poder de concentracion.
Al final, te dejo un link de un libro excelentisimo sobre POO, está en español y es una edicion gratuita, por lo que no estarias rompiendo ninguna licencia.

Por sierto, ahora tampoco te fies mucho de lo que digo, comproba lo que te digo, en el libro que te cito abajo.
Citar
a.- Si pudieran aclararme por favor, en la Pag.1 la Procedure Inicializar, no es un método virtual como veo, entonces ¿como debo entender ese método en las clases hijas? ya que llevan diferentes parámetros y una implementación interesante.
Lo que hace, es llamar al metodo Inicializar de la Classe Padre, es decir:
Código: Text
  1.  
  2. inherited Inicializar(p1, p2, p3...);
  3.  
  4.  
Seria algo así como
Código: Text
  1.  
  2. ClassePadre.Inicializar(p1, p2, p3...);
  3.  
  4.  
Fijate que en el ejemplo no se usa override!!!!!
Si usara
Código: Text
  1.  
  2. TClaseHija = class(TClasePadre)
  3. public
  4.    procedure Metodo(parametro identicos a los de clase Padre); override;
  5.  
  6.  
Ahi si qeu tendrian que ser los mismo parametros.
Citar
c.- En el otro ejemplo, Pag.3 y Pag.5 el CONSTRUCTOR Create tiene diferentes parámetros tanto la Clase Madre como la hija, ¿esto se puede?
Se puede, siempre y cuando no uses override.
Citar
d.- Cual es la forma más óptima de trabajar, utilizar Polimorfismo o Sobrecargado?
Los metodos virtuales, y la cobrecarga de metodos es parte del Polimorfismo.
El polimorfismo es una metodologia dentro de POO para posibilitar tener clases y metodos que se adapten al codigo.

Te recomiendo leer LA CARA OCULTA DE DELPHI 4
Es un libro excelente sobre POO en Delphi.