11.9 Exercícios - Classes Abstratas

  1. Torne a classe Conta abstrata.
import abc
class Conta(abc.ABC):
def __init__(self, numero, titular, saldo=0, limite=1000.0): self._numero = numero
 
self._titular = titular self._saldo = saldo self._limite = limite
 
# outros métodos e propriedades
 
2. Torne o método atualiza() abstrato:
 
class Conta(abc.ABC): # código omitido

@abc.abstractmethod def atualiza():

pass

  1. Tente instânciar uma Conta :
if name == ' main ': c = Conta()

O que ocorre?

  1. Agora, instancie uma ContaCorrente e uma ContaPoupanca , e teste o código chamando o método atualiza() .
if name == ' main ':

cc = ContaCorrente(‘123-4’, ‘João’, 1000.0) cp = ContaPoupanca(‘123-5’, ‘José’, 1000.0)

cc.atualiza(0.01) cp.atualiza(0.01)

print(cc.saldo) print(cp.saldo)
  1. Crie uma classe chamada ContaInvestimento :
class ContaInvestimeto(Conta): pass
  1. Instancie uma ContaInvestimeto :

ci = ContaInvestimento(‘123-6’, ‘Maria’, 1000.0)

  1. Não conseguimos instanciar uma ContaInvestimento que herda Conta sem implementar o método abstrato atualiza() . Vamos criar uma implementação dentro da classe ContaInvestimento :
def atualiza(self, taxa):

self._saldo += self._saldo * taxa *

  1. Agora teste instanciando uma ContaInvestimento e chame o método atualiza() :

ci = ContaInvestimento(‘123-6’, ‘Maria’, 1000) ci.deposita(1000.0)

ci.atualiza(0.01) print(ci.saldo)

  1. (opcional) Crie um atributo tipo nas classes ContaCorrente , ContaPoupanca e ContaInvestimento . Faça com que o tipo também seja impresso quando usamos a função print() .

CAPÍTULO 12‌


⬅️ Capítulo Anterior | Próximo Capítulo ➡️