6.3. Programação orientada a objetos em Python: Herança e Polimorfismo
A programação orientada a objetos (OOP) é um paradigma de programação que fornece uma maneira de estruturar programas para que as propriedades e os comportamentos estejam agrupados em objetos individuais. Python é uma linguagem de programação orientada a objetos e isso será o foco de nossa discussão neste capítulo, concentrando-se na herança e no polimorfismo.
Herança em Python
A herança é um conceito fundamental da OOP que permite criar uma nova classe que é uma versão modificada de uma classe existente. A classe original é chamada de classe base ou classe pai, e a nova classe é chamada de classe derivada ou classe filha. A classe filha herda todos os atributos e comportamentos da classe pai, mas também pode adicionar novos ou modificar os existentes.
Em Python, a herança é declarada pela passagem da classe pai como um parâmetro para a classe filha. Aqui está um exemplo:
class Animal: def __init__(self, name): self.name = name class Dog(Animal): def bark(self): return "Woof!"
No exemplo acima, a classe Dog herda da classe Animal. Isso significa que um objeto Dog tem um atributo name e um método bark().
Polimorfismo em Python
O polimorfismo é outro conceito fundamental da OOP que se refere à capacidade de um objeto poder assumir muitas formas. Em Python, o polimorfismo é implementado de duas maneiras: sobrecarga de métodos e substituição de métodos.
A sobrecarga de métodos se refere à capacidade de uma classe ter vários métodos com o mesmo nome, mas com diferentes parâmetros. Em Python, a sobrecarga de métodos é realizada usando argumentos padrão ou argumentos variáveis.
Aqui está um exemplo de sobrecarga de métodos em Python:
class Rectangle: def area(self, length=1, breadth=1): return length * breadth
No exemplo acima, o método area() pode ser chamado com zero, um ou dois argumentos.
A substituição de métodos se refere à capacidade de uma classe filha alterar a implementação de um método que herdou de sua classe pai. Isso é feito simplesmente declarando na classe filha um método com o mesmo nome do método da classe pai.
Aqui está um exemplo de substituição de métodos em Python:
class Animal: def sound(self): return "Generic animal sound" class Dog(Animal): def sound(self): return "Woof!"
No exemplo acima, a classe Dog substitui o método sound() da classe Animal.
Em resumo, a programação orientada a objetos em Python, com o uso de herança e polimorfismo, permite criar código que é flexível e reutilizável. A herança permite criar novas classes a partir de classes existentes, e o polimorfismo permite que objetos de diferentes classes sejam tratados da mesma maneira. Esses conceitos são fundamentais para a criação de software complexo e são uma parte essencial de qualquer curso de Python.