A ideia de ter um método na classe mãe (ou classe base) é criar uma estrutura comum para todas as classes filhas (ou classes derivadas). Isso é conhecido como polimorfismo, um dos princípios fundamentais da programação orientada a objetos.
Ao definir um método na classe mãe, você está estabelecendo uma interface comum que todas as classes filhas devem seguir. Isso permite que você trate objetos de classes diferentes de maneira uniforme. No seu exemplo, todas as classes derivadas de Relatorio
têm um método chamado gera_relatorio
.
O benefício disso é que você pode escrever código que opera em objetos do tipo Relatorio
, sem se preocupar com a implementação específica de cada classe derivada. Isso promove a reutilização de código e facilita a manutenção, já que você pode adicionar novas classes derivadas sem alterar o código que as utiliza.
No entanto, é importante observar que o método na classe mãe pode ter uma implementação padrão genérica que pode ser substituída ou estendida pelas classes filhas. No seu exemplo:
class Relatorio:
def gera_relatorio(self):
print('Relatório geral')
As classes filhas podem optar por usar essa implementação padrão ou substituí-la com sua própria implementação específica. Isso dá flexibilidade ao projeto.
Em resumo, o objetivo de ter um método na classe mãe é estabelecer uma interface comum para todas as classes filhas, promovendo o polimorfismo e facilitando a manutenção e extensibilidade do código.