Herança e polimorfismo são dois conceitos fundamentais na programação orientada a objetos (OOP) e são amplamente usados em muitas linguagens de programação, incluindo Python. Vamos explorar esses conceitos em detalhes.
7.4.1 Herança
A herança é um recurso da programação orientada a objetos que permite que uma classe herde atributos e métodos de outra classe. A classe de onde os atributos e métodos são herdados é chamada de classe base ou classe pai, e a classe que herda esses atributos e métodos é chamada de classe filha ou classe derivada.
No Python, a herança é realizada definindo uma nova classe, seguida pelos nomes das classes pai entre parênteses.
class ClassePai: pass class ClasseFilha(ClassePai): pass
Aqui, ClasseFilha
é uma subclasse de ClassePai
e herda todos os seus atributos e métodos.
Python também suporta herança múltipla, onde uma classe pode herdar de várias classes pai. Isso é realizado listando todas as classes pai entre parênteses, separadas por vírgulas.
class ClassePai1: pass class ClassePai2: pass class ClasseFilha(ClassePai1, ClassePai2): pass
Aqui, ClasseFilha
é uma subclasse de ClassePai1
e ClassePai2
e herda todos os seus atributos e métodos.
7.4.2 Polimorfismo
O polimorfismo é outro recurso fundamental da programação orientada a objetos. Ele permite que um objeto assuma muitas formas. Mais especificamente, o polimorfismo permite que uma classe filha compartilhe o mesmo nome de método que sua classe pai e ofereça uma implementação diferente desse método.
Por exemplo, considere duas classes, ClassePai
e ClasseFilha
. Ambas as classes têm um método chamado metodo_exemplo
. No entanto, a implementação desse método em cada classe é diferente.
class ClassePai: def metodo_exemplo(self): print("Método da ClassePai") class ClasseFilha(ClassePai): def metodo_exemplo(self): print("Método da ClasseFilha")
Aqui, ClasseFilha
é uma subclasse de ClassePai
e ambas as classes têm um método chamado metodo_exemplo
. No entanto, a implementação desse método em cada classe é diferente. Isso é um exemplo de polimorfismo.
O Python permite o polimorfismo de duas maneiras: sobrecarga de método e substituição de método. A sobrecarga de método permite que uma classe tenha vários métodos com o mesmo nome, mas com diferentes assinaturas de método. A substituição do método permite que uma classe filha forneça uma implementação diferente de um método que já é fornecido por sua classe pai.
Em resumo, a herança e o polimorfismo são características fundamentais da programação orientada a objetos que permitem a reutilização de código e a flexibilidade na implementação de diferentes comportamentos de objetos. Eles são amplamente usados em muitas linguagens de programação, incluindo Python, e são fundamentais para a criação de sistemas eficientes e reutilizáveis.