Se a minha classe em java é
package folhaPagamento;
public class Funcionario {
private String cargo;
private String nome;
private String cpf ;
// uma possível declaração de um construtor para essa classe seria
public Funcionario (String cargo, String nome, String cpf){
this.cargo = cargo; this.nome = nome; this.cpf = cpf;
}
// entretanto eu também posso querer outro construtor, agora vazio
public Funcionario(){
}
// para os sets e gets para o Funcionário seriam todos com o retorno do tipo no get e void para os sets
A possibilidade de ter mais de um tipo de construtor é algo muito bom para o código, pois assim temos opções do que inicializar, já o maior problema do passado ocorre da necessidade de alteração do código por novas demandas no mesmo ou a falta de uma diagramação do mesmo, sem colocar todos os dados necessários.
No exemplo dado na aula sobre funcionários do banco e seus diversos cargos, percebemos que o código vai ficando repetitivo e chato, pois temos que ficar fazendo diversos ifs para verificar os novos componentes e requisitos, sendo que nesse caso a classe em questão já não é compatível com o que estamos fazendo.
Dessa necessidade, aparece a herança como uma forma de redefinir alguns atributos e até adicionar outros , com seus respectivos métodos únicos para aquela nova classe, o que é muito bom.
Aprender a definir corretamente o que vai em cada classe é o essencial para se aprender POO , como é possível fazer o desenho e verificar se o mesmo está dentro da necessidade daquela classe ?