1
resposta

[Projeto] SistemaDePagamentos

package br.com.nadson.desafiosc9.modelo;

public class Pagamento {
    private double valor;
    private double taxa;

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

    public void setTaxa(double taxa) {
        this.taxa = taxa;
    }


    public double calcularValorTaxa() {
        return (this.valor * this.taxa);
    }

    public void processarPagamento() {
        System.out.println("Processando pagamento de R$ " + String.format("%.2f",valor));
    }



}
package br.com.nadson.desafiosc9.modelo;

public class Boleto extends Pagamento {

    public Boleto(double valor) {
        super(valor);
        this.setTaxa(0.02);
    }

    @Override
    public void processarPagamento() {
        System.out.println("Processando pagamento com Boleto...");
        super.processarPagamento();
        System.out.println(" Valor taxa: R$ " + String.format("%.2f", calcularValorTaxa()));
    }


}
package br.com.nadson.desafiosc9.modelo;

public class CartaoDeCredito extends Pagamento {


    public CartaoDeCredito(double valor) {
        super(valor);
        setTaxa(0.05);
    }

    @Override

    public void processarPagamento() {
        System.out.println("Processando pagamento com Cartão de Crédito...");
        super.processarPagamento();
        System.out.println(" Valor taxa: R$ " + String.format("%.2f", calcularValorTaxa()));
    }

}
package br.com.nadson.desafiosc9.modelo;

public class Pix extends Pagamento {

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

    @Override
    public void processarPagamento() {
        System.out.println("Processando pagamento com Pix...");
        super.processarPagamento();
    }
}
package br.com.nadson.desafiosc9.principal;

import br.com.nadson.desafiosc9.modelo.Boleto;
import br.com.nadson.desafiosc9.modelo.CartaoDeCredito;
import br.com.nadson.desafiosc9.modelo.Pagamento;
import br.com.nadson.desafiosc9.modelo.Pix;

import java.util.List;

public class SistemaDePagamentos {
    public static void main(String[] args) {
        List<Pagamento> pagamentos= List.of(
                new Boleto(400.00),
                new CartaoDeCredito(250.00),
                new Pix(300)
        );

      for (Pagamento pagamento : pagamentos) {
          pagamento.processarPagamento();
          System.out.println("-----");
      }}
}
1 resposta

Olá, Nadson! Tudo bem?

Excelente implementação do sistema de pagamentos!

Você estruturou muito bem a hierarquia de classes e o uso do super para reaproveitar a lógica da classe mãe (Pagamento) dentro das especificidades de Boleto e CartaoDeCredito.

Seu uso do polimorfismo na lista List<Pagamento> dentro do main está certíssimo!

Sucesso

Imagem da comunidade