Ed
ontem
Vamos analisar cada afirmativa: I. Interfaces em Kotlin não podem conter implementações concretas, funcionando apenas como contratos abstratos. Falso. Em Kotlin, as interfaces podem sim conter implementações concretas de métodos, o que é uma característica que aproxima a linguagem de paradigmas funcionais. II. O modificador open é necessário para permitir que classes ou métodos sejam estendidos ou sobrescritos. Verdadeiro. Em Kotlin, por padrão, classes e métodos são final, e o modificador open deve ser utilizado para permitir a herança e a sobrescrita. III. A palavra-chave data ao declarar uma classe gera automaticamente métodos úteis, como copy, equals e toString. Verdadeiro. A declaração de uma data class em Kotlin realmente gera automaticamente esses métodos, facilitando o trabalho com dados. IV. Kotlin exige que toda classe herde explicitamente de uma superclasse, como ocorre em linguagens puramente orientadas a objetos. Falso. Em Kotlin, uma classe pode ser declarada sem herdar explicitamente de uma superclasse, pois todas as classes em Kotlin herdam implicitamente da classe Any, que é a superclasse raiz. Com base nas análises, as afirmativas corretas são II e III. Portanto, a alternativa que contém todas as afirmativas verdadeiras é: II e III.