Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Quando usar

Em que casos não usar herança?

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Olá, Marcelo, como vai?

A decisão de não usar herança deve ser considerada em situações onde a relação entre as classes não se encaixa no conceito de "é um tipo de". A herança é ideal para modelar especializações de um tipo geral, como no exemplo: uma ContaCorrente é um tipo de Conta.

No entanto, se a relação for de "tem um", ou seja, uma classe é composta por outra, o mais adequado é utilizar a Composição em vez da herança. A Composição favorece a flexibilidade e ajuda a evitar hierarquias de classes rígidas e profundas, que podem se tornar complexas e difíceis de manter. Ela permite que as funcionalidades sejam combinadas de forma mais dinâmica.

Por exemplo:

Se você tem uma classe Carro e uma classe Motor, um carro tem um motor, mas não é um tipo de motor. Nesse caso, a classe Carro deve conter uma instância de Motor como um de seus atributos, em vez de herdar da classe Motor.

class Motor {
  void ligar() {
    // lógica para ligar
  }
}

class Carro {
  // Carro TEM UM Motor
  final Motor _motor = Motor();

  void iniciarViagem() {
    _motor.ligar();
    // lógica do carro
  }
}

Em resumo, prefira Composição quando a funcionalidade puder ser construída pela combinação de objetos existentes, e use Herança apenas quando houver uma relação clara e conceitual de especialização.

Espero ter ajudado.

Siga firme nos seus estudos e conte com o fórum sempre que precisar.

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado