1
resposta

Utilizar métodos das classes no println

Olá! Já que no exemplo da Calculadora, não conseguimos acessar os métodos da classe específica, quando atribuímos o tipo Any no parâmetro, por que conseguimos acessar os métodos ao usar o println, que recebe um parâmetro Any na sobrecarga, ao fazer, por exemplo:

println(analista.bonificacao)

E qual seria uma situação real em que seria vantajoso usar o Any?

Valeu!

1 resposta

Olá, Giovani

Quando utilizamos o método println com o parâmetro Any, ele realiza a chamada do método toString() da classe específica do objeto passado como argumento. Isso ocorre porque a classe Any é a superclasse de todas as classes em Kotlin, ou seja, todos os objetos em Kotlin herdam dessa classe.

Ao utilizar println(analista.bonificacao), por exemplo, o método toString() da classe Bonificacao (supondo que analista seja uma instância dessa classe) é chamado implicitamente, exibindo o valor desejado.

Quanto à sua pergunta sobre uma situação real em que seria vantajoso usar o Any, podemos considerar um caso em que temos uma lista heterogênea de objetos de diferentes classes. Nesse cenário, podemos utilizar o tipo Any para armazenar todos os objetos na mesma lista, permitindo o acesso a métodos comuns a todos eles, como o toString(), por exemplo.

Espero ter ajudado e bons estudos!