Olá Raphael! Tudo bem?
Essa é uma questão dúvida comum quando estamos aprendendo sobre herança em programação orientada a objetos.
Quando você utiliza a herança, a classe filha (neste caso, a Agencia
) herda os atributos e métodos da classe mãe (Banco
). No entanto, para garantir que os atributos da classe mãe sejam corretamente inicializados, é necessário chamar o construtor da classe mãe dentro do construtor da classe filha. Isso é feito com o método super()
.
No seu exemplo, ao chamar super().__init__(nome, endereco)
, você está garantindo que os atributos nome
e endereco
da classe Banco
sejam inicializados corretamente.
Aqui está um exemplo prático para ilustrar melhor:
class Banco:
def __init__(self, nome, endereco):
self._nome = nome
self._endereco = endereco
class Agencia(Banco):
def __init__(self, nome, endereco, numero):
super().__init__(nome, endereco) # Inicializa nome e endereco da classe Banco
self._numero = numero # Inicializa o atributo adicional da classe Agencia
# Exemplo de uso
agencia = Agencia("Banco Exemplo", "Rua Exemplo, 123", 456)
print(agencia._nome) # Saída: Banco Exemplo
print(agencia._endereco) # Saída: Rua Exemplo, 123
print(agencia._numero) # Saída: 456
No exemplo acima, super().__init__(nome, endereco)
chama o construtor da classe Banco
, garantindo que nome
e endereco
sejam inicializados. Em seguida, self._numero = numero
inicializa o atributo específico da classe Agencia
.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.