Cum se realizează moștenirea în limbajul Kotlin?
sobes.tech AI
Răspuns de la AI
Moștenirea în Kotlin se bazează pe cuvintele cheie open și override. Clasele și metodele, implicit, sunt final, ceea ce înseamnă că nu pot fi moștenite sau suprascrise. Pentru a permite moștenirea, clasa sau metoda trebuie marcată cu modificatorul open.
Pentru a crea o clasă derivată, se folosește două puncte : după numele clasei de bază, urmate de numele clasei de bază cu constructorul său.
open class Base(val name: String) {
open fun greet() {
println("Salut, $name")
}
}
Pentru a suprascrie o metodă a clasei de bază în clasa derivată, se folosește modificatorul override.
class Derived(name: String) : Base(name) {
override fun greet() {
println("Salutări, $name")
}
}
Dacă clasa de bază are un constructor cu parametri, clasa derivată trebuie să îl apeleze folosind cuvântul cheie super.
Kotlin suportă moștenirea multiplă a interfețelor, dar nu a claselor. O clasă poate moșteni doar de la o singură clasă.
O clasă poate, de asemenea, să marcheze membrii săi ca protected, internal sau private, limitând vizibilitatea lor pentru clasele derivate sau în cadrul modulului.
Clasele abstracte sunt declarate cu cuvântul cheie abstract. Ele pot conține atât metode abstracte (fără implementare), cât și metode normale. Metodele abstracte nu necesită cuvântul open, deoarece se presupune că vor fi suprascrise. Clasele abstracte nu pot fi instantiate direct.
abstract class Shape {
abstract fun draw()
open fun printInfo() {
println("Aceasta este o formă.")
}
}
Astfel, moștenirea în Kotlin este controlată explicit prin intermediul modificatorilor open și override, ceea ce îmbunătățește lizibilitatea și previne moștenirea nedorită.