Exemplo 2_1_004: flexibilizando o uso da classe por meio da sobrecarga de métodos.
public class soma3 { private double valor; public soma3(int valor) /*sobrecarga de construtores. Existem dois construtores que diferem pelo tipo do parâmetro*/ { this.valor=valor; } public soma3(double valor) { this.valor=valor; } private double getValor() { return this.valor; //busca o atributo valor } public double add(int num) { this.valor+=valor; return (this.valor); } public double add(double valor) { this.valor+=valor; return (this.valor); } public static void main(String[] args) { soma3 val = new soma3(5.5); val.add(3); val.add(4.5); System.out.print(val.getValor()); } }
No exemplo, foi feita a sobrecarga do método add para possibilitar que esse método receba tanto valores inteiros, quanto valores do tipo double. Não há um limite para sobrecargas de construtores e métodos. Podemos fazer tantos quanto forem necessários. O exemplo a seguir ilustra isso.