você chegou fazer essa alteração de visbilidade que os paragrafos seguindes sugerem?
Antes de testar essa mudança, precisamos fazer uma última alteração para que esse método compile.
Como a visibilidade do atributo valor da classe Livro é private, a linha que o acessa diretamente do método aplicaDescontoDe da classe Ebook não vai funcionar. Afinal, um atributo private só pode ser acessado pela própria classe, nem mesmo as classes filhas (subclasses) podem violar essa regra.
Para que o código funcione, precisamos aumentar essa visibilidade, mas já conhecemos o problema de deixar os atributos public. Uma alternativa é modificar a visibilidade dos atributos da classe Livro para protected, que é um meio termo entre public e private.