Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Uso da herança x composição

Resumidamente, eu posso afirmar que na herança eu posso usar os atributos e métodos da classe "pai" e na composição também posso, então qual a verdadeira vantagem de usar composição em vez de herança?

2 respostas
solução!

Olá Tadeu, tudo bem?

Embora tanto a herança quanto a composição permitam que você acesse atributos e métodos de outras classes, a escolha entre elas depende do que você está tentando realizar em seu projeto.

A herança é útil quando você deseja criar uma classe que é uma versão especializada de outra classe. Por exemplo, se você tiver uma classe Animal e quiser criar uma classe Cachorro que herda os atributos e métodos da classe Animal, mas adiciona seus próprios atributos e métodos específicos para Cachorro, então a herança é a melhor escolha.

Já a composição é útil quando você deseja criar um objeto que contém outros objetos. Por exemplo, se você tiver uma classe Pessoa e quiser adicionar um endereço a essa pessoa, você poderia criar uma classe Endereço separada e, em seguida, compor a classe Pessoa com a classe Endereço. Dessa forma, a classe Pessoa teria um atributo que é uma instância da classe Endereço.

Ou seja, a herança é usada para criar uma relação "é um" entre as classes, enquanto a composição é usada para criar uma relação "tem um" entre as classes. A escolha entre elas depende do que você está tentando modelar em seu projeto e da relação que você deseja estabelecer entre as classes.

Excelente explicação @Otávio! Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software