A classe seria um Desconto abstrato. É ela que deveria implementar Desconto, não cada classe filha (como DescontoAniversario). Se vc deixar o implements para as classes filhas, isso não obriga que cada classe filha implementa a interface Desconto. Se tem uma classe abstrata, consegue obrigar, colocando o implements nela.
Assim, o nome da classe VendaMetodo passaria pra DescontoAbstract
A classe seria um Desconto abstrato. É ela que deveria implementar Desconto, não cada classe filha (como DescontoAniversario). Se vc deixar o implements para as classes filhas, isso não obriga que cada classe filha implementa a interface Desconto. Se tem uma classe abstrata, consegue obrigar, colocando o implements nela.
Assim, o nome da classe VendaMetodo passaria pra DescontoAbstract
https://github.com/wprotheus/Calculo_Desconto/blob/f408d155a37de775ad0a340d80515f5e1d54cbb3/src/main/java/com/manoelcampos/desconto/DescontoAniversario.java#L3