class ContaBancaria:

    def __init__(self, numero_conta, saldo_inicial):

        self.numero_conta = numero_conta

        self.saldo = saldo_inicial

        self.cliente = None


    def depositar(self, valor):

        self.saldo += valor


    def sacar(self, valor):

        if self.saldo >= valor:

            self.saldo -= valor

            return True

        else:

            return False


    def consultar_saldo(self):

        return self.saldo


    def adicionar_cliente(self, nome_cliente):

        self.cliente = nome_cliente



class ContaPoupanca(ContaBancaria):

    def __init__(self, numero_conta, saldo_inicial):

        super().__init__(numero_conta, saldo_inicial)

        self.taxa_juros = 0.05  # Taxa de juros para a poupança


    def aplicar_juros(self):

        self.saldo += self.saldo * self.taxa_juros


    # Reaproveitando o método adicionar_cliente usando polimorfismo

    def adicionar_cliente(self, nome_cliente):


        super().adicionar_cliente(nome_cliente)

        print(f"Cliente adicionado à conta poupança: {self.cliente}")