3
respostas

getSaldo ao invés de tranformar saldo em protected.

Boa tarde Nico

Como exercício, você nos pediu que transformassemos o método saca( ) da classe Conta em abstract para que o compilador nos obrigasse a implementa-lo nas classes filhas. Compreendi que o exercício tinha apenas uma motivação didática. Mas ao invés de transformar o atributo saldo da classe Conta em protected, não seria mais correto usar o método super.getSaldo() para obtermos o saldo dentro do método saca de cada classe filha?

Obrigado pelo excelente curso e um forte abraço.

3 respostas

Acredito que de fato foi mostrado apenas por questões didáticas e pra demonstrar que existe além de Public e Private o Protected. No geral apenas colocar como Private ou Public vai funcionar e ser útil mas existem situações em que o Protected é necessário...

e... nem sei e pode, mas segue um link do StackOverflow falando um pouco sobre as diferenças...

https://pt.stackoverflow.com/questions/23/qual-%C3%A9-a-diferen%C3%A7a-entre-modificadores-public-default-protected-e-private

Na verdade acho que você não entendeu minha pergunta. Eu entendi que ele colocou o protect para mostrar o uso, mas dentro do contexto de POO que prega o encapsulamento, deveríamos acessar o saldo não diretamente, mas via método get(), não?

Obrigado

Teoricamente sim, mas é possível dessa outra maneira também. Parece que em JAVA é comum acessar essas infos encapsuladas (tipo o x.getNome()), porém em outras linguagens (tipo C#) não existe essa necessidade/costume, provavelmente ele não está habituado ou gostaria de mostrar uma maneira !=, porém ambos servem.