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!