Considere um sistema bancário em Java que possui a classe Cliente e suas subclasses, ClientePessoaFisica e
ClientePessoaJuridica, onde Cliente é uma classe abstrata. Nesse sistema, um método getDesconto(valor)
deve fornecer o cálculo do desconto para um tipo de cliente, de forma que os clientes do tipo pessoa física e os clientes do tipo pessoa jurídica tenham descontos diferenciados. Suponha que, utilizando corretamente os mecanismos
associados à herança e ao polimorfismo, se deseje implementar essas classes de modo que o método getDesconto
possa ser aplicado indistintamente a qualquer instância que tenha sido declarada como da classe Cliente.
Para atender a essa condição, a implementação dessas classes deve possuir o método getDesconto
✂️ a) apenas na classe Cliente, identificando a qual subclasse o cliente pertence e calculando o desconto por meio de
uma estrutura se-então dentro da implementação. ✂️ b) apenas nas classes ClientePessoaFisica e ClientePessoaJuridica, pois não há instâncias da classe
Cliente no sistema, já que é uma classe abstrata. ✂️ c) em todas as três classes, sendo possível, nesse caso, que a função getDesconto da classe Cliente seja abstrata. ✂️ d) fora das três classes, dado que uma estrutura do tipo se-então deve ser usada para descobrir qual é a classe
adequada. ✂️ e) implementada totalmente em todas as classes, sendo que a função getDesconto da classe Cliente chama a
função getDesconto das classes ClientePessoaFisica e ClientePessoaJuridica de acordo com a
necessidade.