Study
Kotlin

Inheritance di Kotlin

Penjelasan

Beda dari kebanyakan bahasa OOP, class di Kotlin bersifat FINAL (tidak bisa diwarisi) SECARA DEFAULT — kamu wajib menandai class dengan keyword open kalau memang ingin class itu bisa di-extend oleh class lain. Aturan yang sama berlaku untuk method: method biasa tidak bisa di-override kecuali ditandai open, dan class turunannya wajib menulis override.

Contoh Konsep

open class Hewan(val nama: String) { // wajib open supaya bisa diwarisi
    open fun bersuara(): String { // wajib open supaya bisa di-override
        return "$nama mengeluarkan suara."
    }
}

class Kucing(nama: String) : Hewan(nama) { // panggil constructor Hewan
    override fun bersuara(): String {
        return "$nama berkata Meong!"
    }
}

fun main() {
    val kucingku = Kucing("Milo")
    println(kucingku.bersuara()) // Milo berkata Meong!
}

Praktikum

Buat open class Kendaraan(val merek: String) dengan open method infoMerek() yang mengembalikan "Merek: {merek}". Buat class Motor yang : Kendaraan(merek), method infoMerek()-nya di-override untuk menambahkan kata " (Motor)" di akhir. Buat object Motor di main() dan tampilkan hasil infoMerek().

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Class final secara default adalah keputusan desain Kotlin yang sengaja — inheritance yang tidak direncanakan adalah sumber bug umum di banyak codebase. Kalau kamu tidak yakin sebuah class perlu diwarisi, biarkan saja final (jangan tambah open) sampai benar-benar butuh.