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?