package br.com.fintech;
public class Pagamento {
private double valor;
public Pagamento(double valor) {
this.valor = valor;
}
public double getValor() {
return valor;
}
public void confirmarPagamento() {
}
public double calcularTaxa() {
return valor * 0.0;
}
}
package br.com.fintech;
public class CartaoCredito extends Pagamento {
public CartaoCredito(double valor) {
super(valor);
}
@Override
public void confirmarPagamento() {
System.out.printf("Pagamento de R$%.2f confirmado no Cartão de Crédito (Taxa: R$%.2f)%n", getValor(), calcularTaxa());
}
@Override
public double calcularTaxa() {
return getValor() * 0.03;
}
}
package br.com.fintech;
public class BoletoBancario extends Pagamento {
public BoletoBancario(double valor) {
super(valor);
}
@Override
public void confirmarPagamento() {
System.out.printf("Boleto de R$%.2f gerado com sucesso (Taxa: R$%.2f)%n", getValor(), calcularTaxa());
}
@Override
public double calcularTaxa() {
return getValor() * 0.01;
}
}
package br.com.fintech;
public class Pix extends Pagamento {
public Pix(double valor) {
super(valor);
}
@Override
public void confirmarPagamento() {
System.out.printf("Pagamento via Pix de R$%.2f confirmado%n", getValor());
}
}
package br.com.fintech;
public class Principal {
public static void main(String[] args) {
Pagamento cartao = new CartaoCredito(250.00);
Pagamento boleto = new BoletoBancario(500.00);
Pagamento pix = new Pix(300.00);
cartao.confirmarPagamento();
boleto.confirmarPagamento();
pix.confirmarPagamento();
}
}
Saída:
Pagamento de R$250,00 confirmado no Cartão de Crédito (Taxa: R$7,50)
Boleto de R$500,00 gerado com sucesso (Taxa: R$5,00)
Pagamento via Pix de R$300,00 confirmado