Herança
Definição
Herança é um princípio da programação orientada a objetos que permite que uma classe (chamada de subclasse) herde atributos e métodos de outra classe (a superclasse). Isso promove reutilização de código e modelagem hierárquica de comportamentos.
Por que é importante
Herança permite reaproveitar código ao criar novas classes com base em outras. Isso evita repetição e facilita a manutenção.
Ela também ajuda a organizar o sistema em hierarquias, como “um Gato é um Animal”, o que torna o código mais próximo do mundo real e mais fácil de entender.
Linguagens que suportam herança
Herança é amplamente suportada em linguagens orientadas a objetos como Java, C++, Python, Ruby, C#. Algumas linguagens permitem herança múltipla (como C++), enquanto outras evitam esse padrão por simplicidade e segurança (como Java).
Exemplo em código (Python)
class Animal:
def falar(self):
return "Algum som"
class Cachorro(Animal):
def falar(self):
return "Latido"
a = Animal()
c = Cachorro()
print(a.falar()) # Algum som
print(c.falar()) # Latido
No exemplo acima, Cachorro
herda da classe
Animal
e sobrescreve o método falar
. Isso
exemplifica herança com especialização de comportamento.
Riscos ou limitações
- Heranças profundas dificultam o entendimento e manutenção do código
- Classes fortemente acopladas reduzem a flexibilidade para mudanças
- Exagerar no uso de herança pode indicar má modelagem (preferir composição em alguns casos)
- Herança múltipla pode causar confusão quando duas superclasses têm métodos ou atributos com o mesmo nome. Isso pode gerar ambiguidade na hora de decidir qual comportamento deve ser herdado.
Por isso, em muitos projetos modernos, o uso de herança é limitado e prioriza-se a composição como alternativa mais flexível e modular.