Vamos voltar ao exemplo da classe soma. Essa classe só aceita somar valores inteiros. Vamos agora fazer algumas alterações usando a propriedade de sobrecarga de construtor para flexibilizar o uso dessa classe.
Exemplo 2_1_003: flexibilizando o uso da classe por meio da sobrecarga do construtor.
public class soma2 { private double valor; public soma2(int valor) /*sobrecarga deconstrutores. Existem dois construtores que diferem pelo tipo do parâmetro*/ { this.valor=valor; } public soma2(double valor) { this.valor=valor; } private double getValor() { return this.valor; //busca o atributo valor } public double add(int num) { return (this.valor+num); } public static void main(String[] args) { soma2 val1 = new soma2(12); //usa o primeiro construtor soma2 val2 = new soma2(5.5); //usa o segundo construtor } }
Vejam, no exemplo anterior, que a classe possui dois construtores. O primeiro será utilizado quando o objeto for criado por meio de um argumento inteiro (linha 22). O segundo construtor será utilizado quando o argumento utilizado para criar o objeto do tipo soma2 for do tipo decimal (linha 23).
No exemplo anterior, temos ainda uma limitação para realizar a soma, pois a função add só recebe argumentos inteiros. A seguir vamos mostrar como tornar isso flexível por meio da sobrecarga de métodos.