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για να την συμπληρώσετε, και όχι να την αντικαταστήσετε.