POO - Sobrecarga
Seguindo a linha de posts sobre programação orientada a objetos vamos ver mais uma técnica: sobrecarga.
Sobrecarga de método é uma técnica que permite a uma classe possuir mais de um método com um único nome, porém com comportamentos e assinaturas diferentes.
A assinatura do método é a forma com que ele é declarado: nome, parâmetros e tipo de retorno.
É muito comum confundir sobrecarga com polimorfismo. A diferença entre eles é que a sobrecarga consiste em implementações diferentes de um método na mesma classe, enquanto polimorfismo consiste em mudar o comportamento de um método de uma classe em classes descendentes – podendo ser somente estendido ou totalmente reimplementado.
Vamos a exemplos de sobrecarga:
C#:class Sobrecarga {
public double area (double lado) {
return lado * lado;
}
public double area(double largura, double comprimento) {
return largura * comprimento
}
}
Dephi:interface
type
TSobrecarga = class
function Area(ALado: Double): Double; overload;
function Area(ALargura: Double; AComprimento: Double): Double; overload;
end;
implementation
function TSobrecarga.Area(ALado: Double): Double;
begin
Result := ALado * ALado;
end;
function TSobrecarga.Area(ALargura, Acomprimento: Double): Double;
begin
Result := ALargura * AComprimento;
end;
Java:public class Sobrecarga {
public double area(double lado) {
return lado * lado;
}
public double area(double largura, double comprimento) {
return largura * comprimento
}
}
Valeu a todos e comentem à vontade!
Ótimo exemplo, porém um detalhe: segundo Cardelli sobrecarga é um tipo de polimorfismo ad-hoc:
ResponderExcluirClassificação de Cardelli:
Polimorfismo Ad -hoc: abstrações operam sobre um
número finito de tipos
Sobrecarga (O v erloading)
Coerção (Coerc ion)
Polimorfismo Universal: abstrações operam sobre um
número potencialmente infinito de tipos
Paramétrico
Inclusão
flw