Kā notiek mantošana Kotlin valodā?
sobes.tech AI
Atbilde no AI
Kotlin mantošanas pamatā ir atslēgvārdi open un override. Klases un metodes pēc noklusējuma ir final, tas ir, tās nevar mantot vai pārrakstīt. Lai atļautu mantošanu, klasei vai metodei jābūt atzīmētai ar open.
Lai izveidotu mantojošo klasi, pēc mantotās klases nosaukuma ir jāievieto divpunkti :, kam seko pamata klases nosaukums ar tās konstruktoru.
open class Base(val name: String) {
open fun greet() {
println("Hello, $name")
}
}
Lai pārrakstītu pamata klases metodi mantojošajā klasē, izmanto override atslēgvārdu.
class Derived(name: String) : Base(name) {
override fun greet() {
println("Greetings, $name")
}
}
Ja pamata klasei ir konstruktoru ar parametriem, mantojošā klase to ir jāizsauc, izmantojot super vārdu.
Kotlin atbalsta daudzlīmeņu saskarnes mantošanu, bet ne klases. Klase var manto tikai no viena cita klases.
Klase arī var atzīmēt savus locekļus kā protected, internal vai private, ierobežojot to redzamību mantojošajās klasēs vai modulī.
Abstraktas klases tiek deklarētas ar atslēgvārdu abstract. Tās var saturēt gan abstraktus (bez realizācijas), gan parastus metodes. Abstraktām metodēm nav nepieciešams open vārds, jo to pārrakstīšana ir paredzēta. Abstraktas klases tieši nevar instancēt.
abstract class Shape {
abstract fun draw()
open fun printInfo() {
println("This is a shape.")
}
}
Tādējādi, mantošana Kotlinā ir skaidri kontrolējama ar open un override modifikatoriem, kas uzlabo lasāmību un novērš nevēlamu mantošanu.