Fiz um pouco diferente do proposto que na minha visão ficou melhor pelo fato de não usar Herança e menos código.
O que vocês acham?
package br.alura.refatoracao.cap4;
public class ContaBancaria {
private final String titular;
private final TipoConta tipoConta;
private double saldo;
public ContaBancaria(String titular, double saldoInicial, TipoConta tipoConta) {
this.titular = titular;
this.tipoConta = tipoConta;
this.saldo = saldoInicial;
}
public void saca(double valor) {
saldo -= valor + tipoConta.getValorDesconto();
}
public void deposita(double valor) {
saldo += valor - tipoConta.getValorDesconto();
}
public double getSaldo() {
return saldo;
}
public String getTitular() {
return titular;
}
public enum TipoConta {
FISICA(0.1), JURIDICA(0.2);
private double valorDesconto;
private TipoConta(double valorDesconto) {
this.valorDesconto = valorDesconto;
}
double getValorDesconto() {
return valorDesconto;
}
}
}