Entendendo Herança e Composição

oliverigor27

Igor Oliveira

Posted on February 27, 2023

Entendendo Herança e Composição

A programação orientada a objetos é uma parte importante e muitas vezes necessária na formação de um programador. Um dos conceitos fundamentais dessa abordagem é a herança, que nos permite reutilizar código em nossos projetos, dentre outras coisas. No entanto, além da herança, existe outro conceito básico que pode ajudar no desenvolvimento de aplicações, a composição. Mas qual a diferença entre herança e composição? A diferença está na forma como uma classe interage com outras classes dentro do código.

A herança é um mecanismo em POO onde uma classe herda propriedades e métodos e outra classe permitindo a criação de hierarquia de classes, onde uma classe filho (subclasse) é derivada de uma classe mais geral, ou classe pai (Superclasse):

Exemplo de herança

No exemplo acima, a classe 'Gato' herda todos os atributos e métodos da classe 'Animal' além de possuir seu próprio atributo e método chamado "raça".

Pro outro lado, a composição é um mecanismo em POO que cria uma relação do tipo 'tem-um' com outra classe:

Image Exemplo de composicao

No exemplo acima, temos uma classe chamada 'Motor' e logo em seguida uma classe chamada 'Carro'. O que é importante notar aqui é que a classe 'Carro' não estende a classe 'Motor', mas sim cria uma instância da mesma para ser um de seus membros. Assim, a classe 'Carro' terá seus próprios métodos e também poderá acessar os métodos da classe 'Motor' por meio dessa instância criada.

Entre os exemplos do uso de herança, podemos citar:

  • A reutilização de código através de uma classe já existente.
  • A criação de uma classe genérica que pode ser usada como base para outras classes.
  • Definir uma hierarquia de classes dentro do código.

Já os exemplos de uso da composição, podemos citar:

  • A criação de objetos complexos através de objetos mais simples.
  • A possibilidade de combinar funcionalidades de classes diferentes em um único objeto.
  • Permitir a reutilização de código sem a necessidade de criar hierarquias de classes.

A principal diferença entre herança e composição é que a herança é uma relação do tipo "é-um", enquanto a composição é uma relação do tipo "tem-um". Em outras palavras, na herança, uma classe é um tipo de outra classe (ex: Gato é um tipo de Animal), enquanto na composição, uma classe possui objetos de outras classes (ex: Carro tem um Motor).

💖 💪 🙅 🚩
oliverigor27
Igor Oliveira

Posted on February 27, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Entendendo Herança e Composição
typescript Entendendo Herança e Composição

February 27, 2023