Belajar Bahasa Pemrograman Kotlin mudah

Belajar “Inheritance”, Turunan/Pewarisan Class Pada Kotlin [part 9]

Kali ini kita akan belajar tentang Inheritance atau mungkin bilangnya Turunan atau mewariskan kali ya, di kotlin ini kita juga bisa mewariskan sebuah class kedalam class lainnya seperti pada Java.

Dengan basic yang sama dengan Java tapi penulisannya yang agak berbeda di sisi Kotlin.

Oke sebelum kita mulai buat dulu dua buah file, yang pertama beri nama Kelas_A dengan coding seperti berikut :

interface Interface_A{
    val katakan:String

    fun tulisanKu(){
        println(katakan)
    }
}

open class Kelas_A:Interface_A {

    open val lauk = "Nasi Goreng"

    override val katakan: String
        get() = "Katakan_A"

    override fun tulisanKu() {
        super.tulisanKu()
        println("ini method tulisanKu dari \"Kelas_A\"")
    }

    fun makananKu(){
        println(lauk)
    }
}

fun main(){
    val objekKu = Kelas_B()

    objekKu.tulisanKu()
    println()
    println("=========")
    objekKu.makananKu()
}

Di Kotlin jika sebuah Class beserta properti dan methodnya ingin di wariskan ke Class lainnya harus diberi keyword “open” seperti pada baris 9 & 11.

File kedua beri nama Kelas_B

class Kelas_B: Kelas_A() {

    override val lauk: String
        get() = "Bakso!!!"

    override val katakan: String
        get() = "katakan_B"

    override fun tulisanKu() {
        println("Ini method tulisanKu dari \"Kelas_B\" ")
        println("ini isi value katakan = $katakan")
    }
}

Untuk mengimplementasikan atau extend sebuah class penulisannya seperti baris 1.

Kemudian Coba Jalankan, jika tidak ada error maka akan seperti berikut :

>> Ini method tulisanKu dari “Kelas_B”
>> ini isi value katakan = katakan_B
>> =======
>> Bakso!!!

Jika kita lihat kembali ke file Kelas_B seluruh properti dan method yang di wariskan dari Kelas_A kita override atau replace semuanya dengan value yang baru.

Nah bagaimana kalau semisal ingin memanggil value asli dari properti atau method dari Class asalnya ?, caranya kita gunakan keyword “super“, seperti contoh berikut :

class Kelas_B: Kelas_A() {

    override val lauk: String
        get() = "Bakso!!!"

    override val katakan: String
        get() = "katakan_B"

    override fun tulisanKu() {
        println("Ini method tulisanKu dari \"Kelas_B\" ")
        println("ini isi value katakan = $katakan")
        println(".")
        println(".")
        println("(Panggil Value asli Kelas_A dan Kelas_B)")
        println("${super.lauk} + $lauk")
        println()
        println("Ini isi method dari Kelas_A : ")
        super.tulisanKu()
    }
}

– Pada baris 15 & 18 memanggil value asli dari kelas_A.

Output tambahan nya akan seperti ini :

>> (Panggil Value asli Kelas_A dan Kelas_B)
>> Nasi Goreng + Bakso!!!
>>
>> Ini isi method dari Kelas_A :
>> ini method tulisanKu dari “Kelas_A”

Leave a Reply

Your email address will not be published. Required fields are marked *