Quando a classe mãe tem 2 construtores específicos na filha quando eu for passar os parâmetros do construtor, como posso chamar o 2° construtor da mãe?
Quando a classe mãe tem 2 construtores específicos na filha quando eu for passar os parâmetros do construtor, como posso chamar o 2° construtor da mãe?
Bom dia David!
Você pode ter mais de um construtor para uma determinada Classe, porém os eles precisam ter assinaturas diferentes.
Exemplo, se você tiver uma Classe Cliente, você pode ter um construtor com o nome (String) e outro com o cpf (int), pelo tipo de parâmetro passado o Java vai interpretar como um ou outro construtor.
Cliente.java
package br.com.bytebank.banco.modelo;
public class Cliente {
private String nome;
private int cpf;
private String profissao;
public Cliente() {
}
public Cliente(String nome) {
this.nome = nome;
}
public Cliente(int cpf) {
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getCpf() {
return cpf;
}
public void setCpf(int cpf) {
this.cpf = cpf;
}
public String getProfissao() {
return profissao;
}
public void setProfissao(String profissao) {
this.profissao = profissao;
}
}
Quando você fizer:
Cliente cliente = new Cliente("Jonas");
Vai ser o 1º construtor.
Quando você fizer:
Cliente cliente = new Cliente(123456789);
Vai ser o 2º construtor.
Mas não vai dar certo se o cpf também for String.
Eu inclusive fiquei me perguntando o que aconteceria, fiz o teste e vi que o Eclipse manda renomear o segundo construtor, pois não tem como o Java saber qual construtor você quer chamar se os 2 precisam de 1 String.
Sacou?
Também seria possível ter 2 construtores com quantidade de parâmetros diferente.