Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/11/2007, 13:22
Avatar de Nam
Nam
 
Fecha de Ingreso: mayo-2007
Mensajes: 6
Antigüedad: 17 años
Puntos: 0
Re: Diferencia entre Polimorfismo y Sobrecarga

Hola kakarotv5, muchas gracias por tu respuesta

Alguna cosas de los códigos no las he dado pero más o menos entiendo qué hacen. Pero sigo sin tener muy clara la principal diferencia. Necesito que me lo expliquen a nivel básico


Por lo que me has puesto, entiendo esto:

Sobrecarga: métodos con el mismo nombre pero diferente número o tipo de parámetros. En tu ejemplo, el método Multiplicar tiene el mismo nombre pero el compilador sabe a quién pertenece cada uno porque los parámetros son de distinto tipo, ¿cierto?


Polimorfismo: métodos con el mismo nombre pero según qué objeto lo llame ejecuta un código o otro. Ejemplo del método Dibujar:

Si lo llama el objeto cPunto se ejecuta esto:
Cita:
Procedure cPunto.Dibujar(Canvas: tCanvas);
begin
Canvas.TextOut(X, Y,'.')
end;

Si lo llama el objeto cCilindro se ejecuta esto:
Cita:
procedure cCilindro.Dibujar{Draw}(Canvas: tCanvas);
begin
Canvas.Ellipse(getX - getRadio, getY - Altura - getRadio, getX + getRadio, getY - altura + getRadio);
Canvas.Rectangle(getX - getRadio, getY-Altura, getX+getRadio, getY);
Canvas.Ellipse(getX - getRadio, getY - getRadio, getX + getRadio, getY + getRadio);
end;

Si lo llama el objeto cCirculo se ejecuta esto:
Cita:
Procedure cCirculo.Dibujar{Pintar}(Canvas: tCanvas);
begin
Canvas.Ellipse(getX- Radio, getY - Radio, getX + Radio, getY + Radio);
end;



¿Sería así o me estoy liando?