Opa, tudo na paz?
Estou com essa dúvida há algum tempo... em um cenário onde eu crio uma classe abstrata e proponho herança para as classes concretas abaixo dela, caso eu não veja sentido em criar getters e setters para acesso (já que essa classe abstrata é um conceito) como fica o modificador de acesso? "public" ou "protected" ?
Eu, particularmente acreditando que tenha entendido as aulas anteriores tenho tido a tendência de usar o protected já que ele deixa a classe filha alterar direto o atributo e nesse caso a classe filha é a classe concreta e se alguém por algum motivo extender da classe filha, o protected protege o atributo da super classe abstrata.
Porém tenho feito isso porque para mim, a classe abstrata por não poder ser instanciada, apenas com o encapsulamento que o protected dá é o suficiente! Pois deixando public não estaria encapsulando nada, além de permitir que todas as classes que "herdassem" de suas filhas tivessem acesso aos seus atributos e métodos publicos.
Não sei se ficou claro minha dúvida, mas obrigado mesmo assim para quem puder me ajudar!