Olá!
Segue minha resolução?
- Classe abstrata Pagamento:
package br.com.alura.exercicios;
public abstract class Pagamentos {
protected double valorCompra;
public Pagamentos(double valorCompra) {
this.valorCompra = valorCompra;
}
public void setValorCompra(double valorCompra) {
this.valorCompra = valorCompra;
}
public abstract void calcularTaxa();
}
- Classes CartãoCredito, Boleto e Pix:
package br.com.alura.exercicios;
public class CartaoCredito extends Pagamentos{
public static final Double TAXA_CREDITO = 3.0;
public CartaoCredito(double valorCompra) {
super(valorCompra);
}
@Override
public void calcularTaxa() {
double taxa = valorCompra * TAXA_CREDITO/100;
System.out.printf("Pagamento de R$%.2f confirmado no Cartão de Crédito (Taxa:R$%.2f)", valorCompra, taxa);;
}
}
package br.com.alura.exercicios;
public class Boleto extends Pagamentos{
private static final Double TAXA_BOLETO = 1.0;
public Boleto(double valorCompra) {
super(valorCompra);
}
@Override
public void calcularTaxa() {
double taxa = valorCompra * TAXA_BOLETO/100;
System.out.printf("Pagamento de R$%.2f confirmado no boleto. (Taxa:R$%.2f)", valorCompra, taxa);
}
}
package br.com.alura.exercicios;
public class Pix extends Pagamentos{
public Pix(double valorCompra) {
super(valorCompra);
}
@Override
public void calcularTaxa() {
System.out.printf("Pagamento de R$%.2f confirmado no Pix.", valorCompra);;
}
}
- Main para rodar a aplicação:
package br.com.alura.exercicios;
public class Main {
public static void main(String[] args) {
Pagamentos credito = new CartaoCredito(250);
Pagamentos boleto = new Boleto(500);
Pagamentos pix = new Pix(300);
credito.calcularTaxa();
System.out.println();
boleto.calcularTaxa();
System.out.println();
pix.calcularTaxa();
}
}