Carregando...
Carregando...
Considerando a importância da herança para a reutilização e extensão de código, você tem a tarefa de implementar uma nova classe chamada ContaCorrente, que deve herdar atributos e métodos de uma classe base ContaBancaria. A classe ContaBancaria inclui atributos como titular e saldo, além de métodos como depositar(valor) e sacar(valor). A sua nova classe ContaCorrente deve introduzir um novo método emitirCheque(valor) e sobrescrever o método sacar(valor) para incluir uma taxa de saque.
Considerando esses requisitos, análise qual das seguintes implementações de código em Python é a correta ao ser criada para a classe ContaCorrente?
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
“class ContaCorrente(ContaBancaria): def emitirCheque(self, valor): print(f"Emitindo cheque de {valor}") def sacar(self, valor): taxa = 1.0 super().sacar(valor + taxa)” está correta porque segue corretamente a sintaxe de Python para herança, utilizando a função super() para chamar o método sacar(valor) da classe base ContaBancaria e adicionando a taxa de saque conforme especificado. Além disso, inclui a implementação do novo método emitirCheque(valor), cumprindo com os requisitos da tarefa. Justificativa das demais alternativas:
A alternativa “class ContaBancaria(): def sacar(valor): self.saldo -= valor class ContaCorrente(ContaBancaria): def emitirCheque(valor): print(f"Emitindo cheque de {valor}")” não define corretamente os métodos da classe ContaCorrente com o parâmetro self, e não inclui a herança da classe ContaBancaria. Além disso, o método emitirCheque não segue a sintaxe correta para métodos de instância.
A alternativa “class ContaCorrente(): def emitirCheque(self, valor): print(f"Emitindo cheque de {valor}") def sacar(self, valor): taxa = 1.0 self.saldo -= (valor + taxa)” não utiliza herança, criando a classe ContaCorrente como se fosse independente, sem herdar atributos ou métodos de ContaBancaria, e não utiliza a função super() para acessar o método sacar da classe base.
A alternativa “class ContaCorrente(ContaBancaria): def emitirCheque(self, valor): print(f"Emitindo cheque de {valor}") def sacar(valor): taxa = 1.0 super().sacar(valor + taxa)” tenta sobrescrever o método sacar, mas falha ao não incluir o parâmetro self, o que é essencial para definir métodos de instância em Python. Além disso, não implementa corretamente a sobrescrita de métodos utilizando super().
A alternativa “class ContaCorrente(ContaBancaria): def init(self, titular, saldo): super().init(titular, saldo) def emitirCheque(self, valor): print(f"Emitindo cheque de {valor}") def sacar(self, valor): taxa = 1.0 self.saldo -= (valor + taxa)” , apesar de corretamente inicializar a classe com super().init(titular, saldo) e implementar o método emitirCheque, implementa incorretamente o método sacar ao não utilizar super().sacar(valor + taxa), contrariando a especificação de sobrescrever o método sacar para incluir uma taxa e, em vez disso, modifica diretamente o saldo.