Sobes.tech
Junior

Fale sobre herança em Kotlin.

sobes.tech IA

Resposta da IA

A herança em Kotlin é um mecanismo que permite criar novas classes com base em classes existentes. A nova classe (filha ou derivada) herda as propriedades (variáveis) e métodos (funções) da classe pai (base). Isto promove a reutilização de código e a criação de hierarquias de classes.

Características principais:

  1. Por padrão, não é aberta: Em Kotlin, classes e métodos são final por padrão, o que significa que não podem ser herdados ou sobrescritos. Para permitir herança, devem ser explicitamente marcados com a palavra-chave open.
  2. Construtores: A classe filha deve chamar o construtor de uma das classes base (se houver várias, no caso de interfaces). A chamada ocorre ao declarar a classe filha usando (...).
  3. Sobrescrever métodos e propriedades: Para sobrescrever um método ou propriedade da classe base na classe filha, eles devem ser marcados com open na classe base e override na classe filha.
  4. super: A palavra-chave super é usada para aceder aos membros da classe base a partir da classe filha.
  5. Herança simples de implementação: Kotlin suporta herança simples de implementação (de uma única classe), mas herança múltipla de interfaces.

Exemplo de classe base:

// Classe base
open class Animal(val name: String) {
    open fun makeSound() {
        println("$name faz um som")
    }
}

Exemplo de classe filha:

// Classe filha
class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("$name late")
    }
}

Uso:

// Uso de objetos
fun main() {
    val animal = Animal("Animal genérico")
    animal.makeSound() // Saída: Animal genérico faz um som

    val dog = Dog("Buddy")
    dog.makeSound() // Saída: Buddy late
}