package com.github.aldenyjr.exercicios.sistema_de_pagamento;
public abstract class Pagamento {
protected double valor;
public Pagamento(double valor) {
this.valor = valor;
}
public abstract void processarPagamento();
protected void exibirResumo(double taxa) {
System.out.printf("Pagamento de R$ %.2f confirmado.%n", valor);
System.out.printf("Taxa aplicada: R$ %.2f%n%n", taxa);
}
}
package com.github.aldenyjr.exercicios.sistema_de_pagamento;
public class CartaoCredito extends Pagamento {
public CartaoCredito(double valor) {
super(valor);
}
@Override
public void processarPagamento() {
double taxa = valor * 0.03;
System.out.println("Pagamento via Cartão de Crédito");
exibirResumo(taxa);
}
}
package com.github.aldenyjr.exercicios.sistema_de_pagamento;
public class BoletoBancario extends Pagamento {
public BoletoBancario(double valor) {
super(valor);
}
@Override
public void processarPagamento() {
double taxa = valor * 0.01;
System.out.println("Pagamento via Boleto Bancário");
exibirResumo(taxa);
}
}
package com.github.aldenyjr.exercicios.sistema_de_pagamento;
public class Pix extends Pagamento {
public Pix(double valor) {
super(valor);
}
@Override
public void processarPagamento() {
double taxa = 0;
System.out.println("Pagamento via Pix");
exibirResumo(taxa);
}
}
package com.github.aldenyjr.exercicios.sistema_de_pagamento;
public class SistemaDePagamento {
public static void main(String[] args) {
Pagamento p1 = new CartaoCredito(100);
Pagamento p2 = new BoletoBancario(200);
Pagamento p3 = new Pix(300);
p1.processarPagamento();
p2.processarPagamento();
p3.processarPagamento();
}
}
Resultado:
Pagamento via Cartão de Crédito
Pagamento de R$ 100,00 confirmado.
Taxa aplicada: R$ 3,00
Pagamento via Boleto Bancário
Pagamento de R$ 200,00 confirmado.
Taxa aplicada: R$ 2,00
Pagamento via Pix
Pagamento de R$ 300,00 confirmado.
Taxa aplicada: R$ 0,00