Dúvida inteface/herança JAVA

Galera,

Estou estudando orientação a objeto em Java, e um amigo meu me passou um exercício que o professor dele deu a ele na faculdade, para eu treinar meus conhecimentos.
image

Já fiz inúmeros exercícios com Polimorfismo, Herança, etc, mas estou empacado nessa implementação que envolve mais de um conceito junto. Eu cheguei a criar a classe Venda, mas não entendi como implementar a interface e as classes filhas a partir dela. Alguem poderia me ajudar a entender isso ? Já pesquisei sobre interfaces, porém os exemplos encontrados são todos diferentes desse proposto.

Agradeço pela atenção

A interface é um tipo abstrato de dado, alguma classe concreta precisa implementá-la, no seu caso as seguintes classes:

public class PagamentoAVista implements RegraDePagamento {
    // Corpo da classe
}

public class PagamentoAprazo implements RegraDePagamento {
    // Corpo da classe
}
1 curtida

Não sei se entendi muito bem a sua duvida, mas nesse caso, você iria colocar um atributo na classe Venda do tipo RegraDePagamento.

public class Venda {
     private RegraDePagamento regraDePagamento;
}

Usando a classe Venda você faria isso:

Venda venda = new Venda();
venda.setRegraDePagamento(new PagamentoAVista());

ou

venda.setRegraDePagamento(new PagamentoAprazo());

Isso é polimorfismo.

Cada classe do tipo RegraDePagamento vai implementar o pagar de um jeito.

Por exemplo: no PagamentoAVista será aplicado 5% de desconto no calculo do valorTotal e na PagamentoAPrazo não.

1 curtida

Perfeito,
entendi mais ou menos, vou tentar concluir o exercício. Valeu !!!

Seu exemplo esclareceu muito a ideia, vou implementar. Obrigadão !!!