Foi dito na aula que a equipe Caelum concorda com o fato de que, em muitos casos, a herança quebra o encapsulamento. Isso me pareceu um pouco confuso, poderiam me esclarecer melhor essa quebra, e se possivel, exemplificar?
Foi dito na aula que a equipe Caelum concorda com o fato de que, em muitos casos, a herança quebra o encapsulamento. Isso me pareceu um pouco confuso, poderiam me esclarecer melhor essa quebra, e se possivel, exemplificar?
Oi Thiago, tudo bem ?
Algumas vezes realmente ela acaba quebrando, pensa no exemplo de termos um atributo privado e sem o setter na classe mãe, ok ? Agora criamos uma classe filha que estende da classe mãe, perfeito ? Quando fizemos isso, a classe filha tem acesso a todos os métodos e atributos da classe mãe, ou seja, pode alterar totalmente os comportamentos, por exemplo aquele atributo privado que não tinha o setter.
Olá, Matheus. Obrigado por reponder. Mas, nesse caso, já não poderia dizer que a classe mãe não segue as boas práticas do encapsulamento? Visto que, embora o atributo seja privado, seria bom que existisse um setter. Ao meu ver, a classe mãe não está bem encapsulada, então a herança apenas "repassou" o erro para as classes filhas. É isso que chamamos de quebra do encapsulamento pela herança ? Mesmo que a classe já não esteja bem encapsulada ?
Thiago, tudo bem ?
Então cara, isso é um pouco complicado de falar, porque na minha opnião encapsulamento não é só deixar o campo privado e criar getter e setter, porque pensa bem, a única diferença é que você não acessa ele diretamente, contudo atráves do setter pode sempre ficar manipulando aquele valor. Entende ?