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
}
Έτσι, χωρίς να αλλάξει η βασική κλάση, μπορεί να αλλάξει η συμπεριφορά της μεθόδου στην κλάση που κληρονομεί.