Gostaria de saber se eu fiz tudo certo, se tiver alguma sugestão do que eu possa melhorar, eu agradeço.
CalculadorImposto.java
package bytebank_herdado_conta;
public class TesteContaCorrente {
public static void main(String[] args) {
ContaCorrente cc = new ContaCorrente(111, 333);
cc.setSaldo(1000.0);
SeguroDeVida sv = new SeguroDeVida(120);
CalculadorImposto ci = new CalculadorImposto();
System.out.println("O seu saldo tributado é: " + ci.imposto(cc));
System.out.println("O seguro de vida já tributado, vai custar " + ci.imposto(sv));
}
}
Cliente.java
package bytebank_herdado_conta;
public class TesteContaCorrente {
public static void main(String[] args) {
ContaCorrente cc = new ContaCorrente(111, 333);
cc.setSaldo(1000.0);
SeguroDeVida sv = new SeguroDeVida(120);
CalculadorImposto ci = new CalculadorImposto();
System.out.println("O seu saldo tributado é: " + ci.imposto(cc));
System.out.println("O seguro de vida já tributado, vai custar " + ci.imposto(sv));
}
}
ContaCorrente.java
package bytebank_herdado_conta;
public class ContaCorrente extends Conta implements Tributavel{
public ContaCorrente(int agencia,int numero) {
super(agencia, numero);
}
@Override
public double getValorImposto() {
double imposto = this.saldo - this.saldo * 0.01;
return imposto;
}
public boolean saca(double valor) {
double valorASacar = valor + 0.20;
return super.saca(valorASacar);
}
@Override
public void deposita(double valor) {
super.saldo += valor;
}
}
ContaPoupanca.java
package bytebank_herdado_conta;
public class ContaPoupanca extends Conta {
public ContaPoupanca(int agencia,int numero) {
super(agencia, numero);
}
@Override
public void deposita(double valor) {
super.saldo += valor;
}
}
SeguroDeVida.java
package bytebank_herdado_conta;
public class SeguroDeVida implements Tributavel {
private double idade;
private double valorInicial = 20.0;
public SeguroDeVida(double idade) {
if(idade >= 0 && idade <= 120)
this.idade = idade;
else {
System.out.println("idade inválida");
}
}
@Override
public double getValorImposto() {
if(this.idade <= 10) {
return this.valorInicial;
} else if (this.idade <= 20) {
return 20 * 0.1 + this.valorInicial;
} else if (this.idade <= 30) {
return 20 * 0.2 + this.valorInicial;
} else if (this.idade <= 40) {
return 20 * 0.3 + this.valorInicial;
} else if (this.idade <= 50) {
return 20 * 0.4 + this.valorInicial;
} else if (this.idade <= 60) {
return 20 * 0.5 + this.valorInicial;
} else if (this.idade <= 70) {
return 20 * 0.6 + this.valorInicial;
} else if (this.idade <= 80) {
return 20 * 0.7 + this.valorInicial;
} else if (this.idade <= 90) {
return 20 * 0.8 + this.valorInicial;
} else if (this.idade <= 100) {
return 20 * 0.9 + this.valorInicial;
} else {
return 20 * 1.0 + this.valorInicial;
}
}
}
TesteTributavel.java
package bytebank_herdado_conta;
public class TesteTributaveis {
public static void main(String[] args) {
ContaCorrente cc = new ContaCorrente(111, 333);
cc.setSaldo(1000.0);
SeguroDeVida sv = new SeguroDeVida(120);
CalculadorImposto ci = new CalculadorImposto();
System.out.println("O seu saldo tributado é: " + ci.imposto(cc));
System.out.println("O seguro de vida já tributado, vai custar " + ci.imposto(sv));
}
}
Tributavel.java
package bytebank_herdado_conta;
public abstract interface Tributavel {
public abstract double getValorImposto();
}