Boa noite pessoal, estou iniciando na programação Orientada a objetos , estou fazendo um cadastro simples usando um vetor , esse mesmo cadastro anteriormente usando herança funcionava pois tinha a classe PESSOA , classe ALUNO , classe FUNCIONARIO, onde ALUNO E FUNCIONARIO herdavam de PESSOA , logo na classe principal eu consegui instancia um objeto : Pessoa alunofulano = new Aluno();
então passava esse objeto alunofulano para o meu array em outra classe CADASTRO, porem ao retirar a herança isso não e mais possível como fazer com composição?
Duvida sobre herança x Composição
3 Respostas
Solucao aceita
Com composição, a pessoa será um atributo de aluno e funcionário. Com isso, para instanciar um aluno, por exemplo, você terá que criar a instância de aluno e pessoa separadamente e fazer a atribuição de pessoa em aluno.
class Aluno {
private Pessoa pessoa;
// getters and setters
}
class Main {
public static void main(String args[]) {
Aluno a = new Aluno();
Pessoa p = new Pessoa();
a.setPessoa(p);
}
}
Lucas muito obrigado , funcionou aqui o meu teste, agora sem querer abusar mas ja abusando, notei que com herança foi bem mais simples fazer a mesma tarefa , então realmente tem vantagem usar composição?
Aluno aluno = new Aluno();
Pessoa pessoa= new Pessoa();
aluno.setPessoa(pessoa);
pessoa.setNome("DiegoSampaio");
teria como quando instanciar o Aluno ja setando a pessoa dele pra simplificar?
Não se trata de vantagem em usar um ou outro, mas sim qual se encaixa melhor na situação. Herança é muito bem usado, por exemplo, numa especialização em banco de dados.
Criado 18 de setembro de 2016
Ultima resposta 19 de set. de 2016
Respostas 3
Participantes 2