package SistemaDePagamento;
public abstract class Pagamento {
private double valor;
public Pagamento(double valor) {
if (valor < 0) {
throw new IllegalArgumentException("Valor inválido");
}
this.valor = valor;
}
protected double getValor() {
return valor;
}
public abstract double calcularTaxa();
public abstract void confirmar();
public double getValorTotal() {
return valor + calcularTaxa();
}
}
package SistemaDePagamento;
public class CartaoDeCredito extends Pagamento {
public CartaoDeCredito(double valor) {
super(valor);
}
@Override
public double calcularTaxa() {
return getValor() * 0.03;
}
@Override
public void confirmar() {
System.out.println("Pagamento confirmado com sucesso");
}
}
package SistemaDePagamento;
public class Boleto extends Pagamento {
public Boleto(double valor) {
super(valor);
}
@Override
public double calcularTaxa() {
return getValor() * 0.01;
}
@Override
public void confirmar() {
System.out.println("Pagamento confirmado com sucesso");
}
}
package SistemaDePagamento;
public class Pix extends Pagamento{
public Pix(double valor) {
super(valor);
}
@Override
public double calcularTaxa() {
return 0;
}
@Override
public void confirmar() {
System.out.println("Pagamento via pix confirmado");
}
}
package SistemaDePagamento;
public class Principal {
public static void main(String[] args) {
Pagamento cartao = new CartaoDeCredito(250);
System.out.println("Total com cartão: R$ " + cartao.getValorTotal());
cartao.confirmar();
System.out.println("------");
Pagamento boleto = new Boleto(500);
System.out.println("Total com boleto: R$ " + boleto.getValorTotal());
boleto.confirmar();
System.out.println("------");
Pagamento pix = new Pix(300);
System.out.println("Total com pix: R$ " + pix.getValorTotal());
pix.confirmar();
}
}