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() {
        super.greet()  // κλήση της μεθόδου της βασικής κλάσης
        println("Γειά από το Derived")
    }
}

fun main() {
    val obj = Derived()
    obj.greet()
}

Σε αυτό το παράδειγμα, η μέθοδος greet της κλάσης Base υπερισχύει στην κλάση Derived, καλώντας την αρχική υλοποίηση μέσω super.greet(), και στη συνέχεια προσθέτοντας επιπλέον συμπεριφορά.

Έτσι, για να αλλάξετε ή να προσθέσετε συμπεριφορά σε μια μέθοδο:

  • Στην βασική κλάση, η μέθοδος πρέπει να είναι open.
  • Στην υποκλάση, η μέθοδος σημειώνεται με override.
  • Μπορείτε να καλέσετε την αρχική μέθοδο μέσω super για να την συμπληρώσετε, και όχι να την αντικαταστήσετε.