Extender una clase que tiene múltiples constructores en Kotlin

Fariba Laiq 20 junio 2023
Extender una clase que tiene múltiples constructores en Kotlin

La herencia es un concepto importante en la programación orientada a objetos en el que una clase derivada hereda todas las características de su base/superclase y también puede tener sus características.

Este artículo analiza cómo extender una clase que tiene varios constructores. Un constructor es una función llamada en el momento de la creación del objeto para inicializar las variables de clase.

Extender una clase que tiene múltiples constructores en Kotlin

Por lo general, no podemos heredar varios constructores primarios de la superclase y llamar a cualquiera de ellos según la situación. Para resolver este problema, podemos usar constructores secundarios.

Aunque, los constructores secundarios no son tan comunes en Kotlin. Pero son útiles cuando se heredan múltiples constructores de la superclase.

Los constructores secundarios se definen utilizando la palabra clave constructor. En el siguiente ejemplo, la superclase Fruit tiene dos constructores secundarios y ninguno primario.

Creamos una clase derivada Mango con dos constructores secundarios y llamamos a cualquiera de los constructores de la superclase según el contexto. De esta forma, podemos heredar múltiples constructores de la clase base.

Código de ejemplo:

public open class Fruit{
    public constructor(message: String, color:String) {
        println("$message $color")
    }
    public constructor(message:String) {
        println("$message")
    }
}

public class Mango: Fruit{
    constructor(message:String, color:String):super(message, color) {
        
    }
    public constructor(message:String):super(message) {
        
    }
}

fun main(args : Array<String>) {
    Mango("I am a mango.")
    Mango("I am a mango", "Yellow One.")
}

Producción :

I am a mango.
I am a mango Yellow One.
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Kotlin Class