Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Classes abstratas

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!

4 respostas

Oie Israel, tudo bem contigo?

Ao meu ver o uso do "protected" nessa situação seria o ideal, mas ainda sim não fica tão encapsulado. Sempre que possível é bom fugir de herança, usando em troca as interfaces e composição para o uso do polimorfismo e replicação de código. Na Caelum temos um artigo bem legal que fala sobre o encapsulamento e herança, segue o link:

Qualquer outra dúvida fico a disposição :)

Bons estudos!

solução!

Tudo bom sim Igor e com você?

Sim, eu já havia lido o conteúdo desse link e achei bem interessante. Porém o Paulo aborda o uso da herança para economia de código, não como modelagem. Eu sempre que posso, sempre que faz sentido e o conceito: É um está implícito, eu tento usar herança. Mas confesso que cada vez mais tem feito mais sentido usar composição, o termo: Tem um surge com mais frequência.

Uma pergunta: Existe uma forma da gente medir o nível de acoplamento? Porque por mais que composição seja mais interessante, eu fico com medo de estar criando depências que podem não ser tão estáveis assim...

Um grande abraço Igor.

Tudo ótimo comigo também :)

Para responder essa sua pergunta, eu escolhi outro artigo do blog da Caelum que trata sobre esse tema de acoplamento e uma forma de "medir" se está perigoso ou não.

Acredito que esse artigo irá te ajudar bastante! Qualquer outra dúvida eu fico a disposição :)

Marquei acidentalmente minha própria resposta correta, desculpa. Tem como editar isso?