Junior
Háblame sobre la herencia en Kotlin.
sobes.tech AI
Respuesta de la IA
La herencia en Kotlin es un mecanismo que permite crear nuevas clases basadas en las existentes. La nueva clase (hija o derivada) hereda las propiedades (variables) y métodos (funciones) de la clase padre (base). Esto favorece la reutilización del código y la creación de jerarquías de clases.
Características clave:
- Por defecto, no es abierto: En Kotlin, las clases y métodos son
finalpor defecto, lo que significa que no se pueden heredar ni sobrescribir. Para permitir la herencia, deben ser marcados explícitamente con la palabra claveopen. - Constructores: La clase hija debe llamar al constructor de una de las clases base (si hay varias, en el caso de interfaces). La llamada se realiza al declarar la clase hija usando
(...). - Sobrescribir métodos y propiedades: Para sobrescribir un método o propiedad de la clase base en la clase hija, deben ser marcados con
openen la clase base yoverrideen la clase hija. super: La palabra clavesuperse usa para acceder a los miembros de la clase base desde la clase hija.- Herencia simple de implementación: Kotlin soporta herencia simple de implementación (de una sola clase), pero herencia múltiple de interfaces.
Ejemplo de clase base:
// Clase base
open class Animal(val name: String) {
open fun makeSound() {
println("$name hace un sonido")
}
}
Ejemplo de clase hija:
// Clase hija
class Dog(name: String) : Animal(name) {
override fun makeSound() {
println("$name ladra")
}
}
Uso:
// Uso de objetos
fun main() {
val animal = Animal("Animal genérico")
animal.makeSound() // Salida: Animal genérico hace un sonido
val dog = Dog("Buddy")
dog.makeSound() // Salida: Buddy ladra
}