Sobes.tech
Junior

¿Cómo se realiza la herencia en el lenguaje Kotlin?

sobes.tech AI

Respuesta de la IA

La herencia en Kotlin se basa en las palabras clave open y override. Las clases y métodos por defecto son final, es decir, no se pueden heredar ni sobrescribir. Para permitir la herencia, la clase o método debe marcarse con el modificador open.

Para crear una clase heredada, se usa dos puntos : después del nombre de la clase base, seguido del nombre de la clase base con su constructor.

open class Base(val name: String) {
    open fun greet() {
        println("Hola, $name")
    }
}

Para sobrescribir un método de la clase base en la clase heredada, se usa el modificador override.

class Derived(name: String) : Base(name) {
    override fun greet() {
        println("Saludos, $name")
    }
}

Si la clase base tiene un constructor con parámetros, la clase heredada debe llamarlo usando la palabra clave super.

Kotlin soporta herencia múltiple de interfaces, pero no de clases. Una clase solo puede heredar de una clase.

La clase también puede marcar sus miembros como protected, internal o private, limitando su visibilidad para las clases derivadas o dentro del módulo, respectivamente.

Las clases abstractas se declaran con la palabra clave abstract. Pueden contener métodos abstractos (sin implementación) y métodos normales. Los métodos abstractos no necesitan la palabra open, ya que se asume que serán sobrescritos. Las clases abstractas no se pueden instanciar directamente.

abstract class Shape {
    abstract fun draw()
    open fun printInfo() {
        println("Esta es una forma.")
    }
}

De esta forma, la herencia en Kotlin se controla explícitamente mediante los modificadores open y override, lo que mejora la legibilidad y previene herencias no deseadas.