1
resposta

07 Faça como eu fiz: crie novas contas e novas funcionalidades

# 1: Criando um mixim
mixin Imposto {
  double taxa = 0.03;

  double valorTaxado(double valor) {
    return valor * taxa;
  }
}

class ContaEmpresa extends Conta with Imposto {
  ContaEmpresa(super.titular, super._saldo);

  @override
  void enviar(double valor) {
    if (_saldo >= valor + valorTaxado(valor)) {
      _saldo -= valor + valorTaxado(valor);
      imprimeSaldo();
    }
  }
  
  @override
  void receber(double valor) {
    _saldo += valor - valorTaxado(valor);
    imprimeSaldo();
    }
  }
  
#  2: Produzindo a conta investimento

class ContaInvestimento extends Conta with Imposto {
  ContaInvestimento(super.titular, super._saldo);

  @override
  void enviar(double valor) {
    if (_saldo >= valor + valorTaxado(valor)) {
      _saldo -= valor + valorTaxado(valor);
      imprimeSaldo();
    }
  }

   @override
   void receber(double valor) {
    _saldo += valor - valorTaxado(valor);
    imprimeSaldo();
   }

}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Zilda! Como vai?

Agradeço por compartilhar.

Gostei muito da forma como você aplicou o mixin Imposto para reutilizar a lógica de taxa entre diferentes contas. Isso mostra que você entendeu bem o conceito de herança múltipla com mixins no Dart e conseguiu deixar o código mais organizado e reaproveitável.

Uma dica interessante para o futuro é usar o método toString() para personalizar a exibição dos dados de uma classe.


class Conta {
  double saldo;
  Conta(this.saldo);
  
  @override
  String toString() {
    return 'Saldo atual: $saldo';
  }
}

void main() {
  var conta = Conta(500.0);
  print(conta);
}

Esse código sobrescreve o método toString() para mostrar uma mensagem personalizada quando o objeto é impresso.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!