Em que casos não usar herança?
ATÉ 50% OFF
TÁ ACABANDO!
0 dias
0 horas
0 min
0 seg
Em que casos não usar herança?
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 :)