Eu aprendi ontem que eu posso implementar o método toString, equals e comparable.
Qualquer método de qualquer biblioteca pode ser implementado em Java?
Tipo, eu posso implementar o método charAt() do java.lang?
Eu aprendi ontem que eu posso implementar o método toString, equals e comparable.
Qualquer método de qualquer biblioteca pode ser implementado em Java?
Tipo, eu posso implementar o método charAt() do java.lang?
A classe java.lang.String é “final”, ou seja, não se pode herdar dela. Portanto, o método charAt não pode ser sobreescrito, já que não se pode herdar da classe String.
Muitas classes e muitos métodos são declarados como final, isso sigunifica que no caso de classes elas não podem sem extendidas(herdadas); no caso de métodos eles não podem ser sobrescritos ou sobrecarregados. Isso garante uma certa segurança do código.
Imagine se vc pudece sobrescrever o método length()?
Boa noite a todos.
A classe java.lang.String é final, contudo o método toString declarado na classe Object não é final, então este método voce pode sobreescrevê-lo e até sobrecarregá-lo.
O que voce precisa ter em mente é o seguinte:
Quando a classe toda é declarada como final, a classe não poderá ser estendida (herdada), por isso nenhum de seus métodos podem ser sobreescrito e nem sobrecarregados nas classes herdadas, porém os métodos podem ser sobrecarregados nas próprias classes em que foram declarados
Quando somente um método de uma classe for declarado como final, este não pode ser sobreescrito nas classes herdadas, porém pode ser sobrecarregado, tanto na própria classe como nas classes herdadas.
Quando não há declaração “final” nem na classe e nem nos métodos, então todos os métodos desta classe podem ser sobreescritos nas classes herdadas e sobrecarregados tanto na própria classe quanto nas classes herdadas.
Para abrir um pouco mais a mente seria legal dar uma olhada em “Wrappers”.