Erweitern Sie eine Klasse mit mehreren Konstruktoren in Kotlin

Fariba Laiq 20 Juni 2023
Erweitern Sie eine Klasse mit mehreren Konstruktoren in Kotlin

Vererbung ist ein bedeutendes Konzept in der objektorientierten Programmierung, bei der eine abgeleitete Klasse alle Merkmale von ihrer Basis-/Oberklasse erbt und auch deren Merkmale haben kann.

In diesem Artikel wird erläutert, wie eine Klasse erweitert wird, die über mehrere Konstruktoren verfügt. Ein Konstruktor ist eine Funktion, die zum Zeitpunkt der Objekterstellung aufgerufen wird, um die Klassenvariablen zu initialisieren.

Erweitern Sie eine Klasse mit mehreren Konstruktoren in Kotlin

Normalerweise können wir nicht mehrere primäre Konstruktoren von der Superklasse erben und je nach Situation einen von ihnen aufrufen. Um dieses Problem zu lösen, können wir sekundäre Konstruktoren verwenden.

Obwohl sekundäre Konstruktoren in Kotlin nicht so häufig sind. Sie sind jedoch praktisch, wenn Sie mehrere Konstruktoren von der Oberklasse erben.

Sekundärkonstruktoren werden mit dem Schlüsselwort constructor definiert. Im folgenden Beispiel hat die Superklasse Fruit zwei sekundäre und keinen primären Konstruktor.

Wir haben eine abgeleitete Klasse Mango mit zwei sekundären Konstruktoren erstellt und je nach Kontext einen der Konstruktoren der Oberklasse aufgerufen. Auf diese Weise können wir mehrere Konstruktoren von der Basisklasse erben.

Beispielcode:

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.")
}

Ausgang:

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

Verwandter Artikel - Kotlin Class