Sobes.tech
Junior — Middle

Μπορείς στην Kotlin να αλλάξεις την υλοποίηση μιας μεθόδου σε μια κληρονομούμενη κλάση χωρίς να αλλάξεις τον πηγαίο κώδικα αυτής της μεθόδου στην βασική κλάση;

sobes.tech AI

Απάντηση από AI

Ναι, στη Kotlin είναι δυνατή η αλλαγή της υλοποίησης μιας μεθόδου σε μια κληρονομούμενη κλάση χωρίς να αλλάξει ο πηγαίος κώδικας της βασικής κλάσης, χρησιμοποιώντας το μηχανισμό υπερισχύσεως (override). Για αυτό, η μέθοδος στη βασική κλάση πρέπει να δηλωθεί με τον τροποποιητή open.

Παράδειγμα:

open class Base {
    open fun greet() {
        println("Γειά από το Base")
    }
}

class Derived : Base() {
    override fun greet() {
        println("Γειά από το Derived")
    }
}

fun main() {
    val obj: Base = Derived()
    obj.greet() // Θα εμφανίσει: Γειά από το Derived
}

Έτσι, χωρίς να αλλάξει η βασική κλάση, μπορεί να αλλάξει η συμπεριφορά της μεθόδου στην κλάση που κληρονομεί.