Pagamento.java

 avatar
unknown
java
a year ago
1.9 kB
14
Indexable
import java.time.LocalDate;
import java.time.YearMonth;

abstract class Pagamento {
    protected double valor;
    protected LocalDate data;
    protected String descricao;

    public Pagamento(double valor, LocalDate data, String descricao) {
        this.valor = valor;
        this.data = data;
        this.descricao = descricao;
    }

    public abstract void processarPagamento();
}

class PagamentoCartaoCredito extends Pagamento {
    private String numeroCartao;
    private String nomeTitular;
    private YearMonth validade;

    public PagamentoCartaoCredito(double valor, LocalDate data, String descricao,
                                  String numeroCartao, String nomeTitular, YearMonth validade) {
        super(valor, data, descricao);
        this.numeroCartao = numeroCartao;
        this.nomeTitular = nomeTitular;
        this.validade = validade;
    }

    @Override
    public void processarPagamento() {
        YearMonth hoje = YearMonth.now();
        if (validade.isAfter(hoje)) {
            System.out.println("Pagamento via Cartão de crédito. Titular: " + nomeTitular);
        } else {
            System.out.println("Cartão vencido!");
        }
    }
}

class PagamentoBoleto extends Pagamento {
    private String numeroBoleto;
    private LocalDate dataVencimento;

    public PagamentoBoleto(double valor, LocalDate data, String descricao,
                           String numeroBoleto, LocalDate dataVencimento) {
        super(valor, data, descricao);
        this.numeroBoleto = numeroBoleto;
        this.dataVencimento = dataVencimento;
    }

    @Override
    public void processarPagamento() {
        if (!data.isAfter(dataVencimento)) {
            System.out.println("Pagamento via Boleto. Número boleto: " + numeroBoleto);
        } else {
            System.out.println("Boleto Vencido");
        }
    }
}
Editor is loading...
Leave a Comment