1
resposta

[Projeto] Sistema de pagamentos

public abstract class Pagamento {
    protected double valorPagamento;

    public Pagamento(double valorPagamento) {
        this.valorPagamento = valorPagamento;
    }

    public double calcularTaxa(){
        return valorPagamento * 0.0;
    }

    public void confirmarPagamento(){
        System.out.printf("Pagamento de R$ %.2f confimado\n", valorPagamento);
    }
}
public class CartaoCredito extends Pagamento{

    public CartaoCredito(double valorPagamento) {
        super(valorPagamento);
    }

    public double calcularTaxa(){
        return valorPagamento * 0.03;
    }

    public void confirmarPagamento(){
        System.out.printf("Pagamento de R$ %.2f confirmado no cartao de credito (Taxa: %.2f)\n", valorPagamento, calcularTaxa());
    }
}
public class Boleto extends Pagamento{
    public Boleto(double valorPagamento) {
        super(valorPagamento);
    }

    public double calcularTaxa(){
        return valorPagamento * 0.01;
    }

    public void confirmarPagamento(){
        System.out.printf("Boleto de R$ %.2f gerado com sucesso (Taxa: R$ %.2f)\n", valorPagamento, calcularTaxa());
    }
}
public class Pix extends Pagamento{

    public Pix(double valorPagamento) {
        super(valorPagamento);
    }

    public double calcularTxa(){
        return valorPagamento * 0.0;
    }

    public void confirmarPagamento(){
        System.out.printf("Pagamento via Pix de R$ %.2f confirmado\n", valorPagamento);
    }

}
public class Principal {
    public static void main(String[] args){
        Pagamento cartao = new CartaoCredito(250.00);
        Pagamento boleto = new Boleto(500.00);
        Pagamento pix = new Pix(300.00);

        cartao.confirmarPagamento();
        boleto.confirmarPagamento();
        pix.confirmarPagamento();
    }
}
1 resposta

Olá, Enzo, como vai?

O seu código demonstra um bom domínio sobre herança e polimorfismo, aplicando corretamente a sobrescrita de métodos para as diferentes modalidades de pagamento. Notei apenas um pequeno erro de digitação na classe Pix, onde o nome do método foi escrito como calcularTxa em vez de calcularTaxa. Além disso, usar a anotação @Override acima dos métodos sobrescritos ajuda a evitar esse tipo de erro, pois o Java emitirá um aviso se o nome não coincidir com o da classe pai.

Parabéns pela dedicação ao exercício e por aplicar os conceitos de orientação a objetos de forma clara. Continue compartilhando sua evolução conosco.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!