[SCJP] Dúvida com relação ao modificador "private final"
7 respostas
G
gervas-IO
Olá amigos, vi em um teste do livro da katty uma classe com um método com esses modificadores:
Pra mim, ao inserir o modificador final em um método, você está impedindo que ele seja sobrescrito, e a sobrescrita só ocorre na herança, certo?
Então qual seria a utilizade de um modificador “private final”?
Por exemplo um método private final , como voce disse não pode ser sobreescrito E só pode ser acessado dentro do mesmo objeto.
Já um método public final, não pode ser sobreescrito mas pode ser acessado por outros objetos.
Abraços.
G
gervas-IO
mas se ele já e private, não tem necessidade de ser final…
Entendeu?
Jairo_Junior1
Todo método privado é implicitamente final.
danieldomingues86
Sim. Concordo. Se o modificador já é private voce não vai conseguir acessa-lo de fora , quanto muito menos então sobreescreve-lo.
Apenas estou mostrando a diferença de acesso no exemplo que citei.
Abraços.
G
gervas-IO
Legal!
Outro dia achei uma coisa parecida tb…
Em uma classe abstract:
Construtores protected tem a mesma visibilidade de construtores public
Abs.
luiz_renato
Caros colegas,
Sobre a questão private final , acho que seria útil somente em casos de se evitar que uma classe interna tente extender um método da classe “outter” .
Luiz Renato
G
gervas-IO
Tb não ocorre, se a classe externa "Outter" tiver um método private e a classe interna declarar um método com os mesmos parâmetros, ocorrerá uma reescrita do método.
...
Olhe o que eu descobri tb:
A classe interna pode somente acessar um método private dentro do seu próprio corpo, através de uma instância isso não é viável: