Pagamento.java
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