Sobes.tech
Junior

Խոսեք ինձ Kotlin-ում ժառանգության մասին։

sobes.tech AI

Պատասխան AI-ից

Kotlin- ում ժառանգությունը մեխանիզմ է, որը թույլ է տալիս ստեղծել նոր դասեր՝ հիմնվելով առկա դասերի վրա: Նոր դասը (մարմին կամ ժառանգ) ժառանգում է ծնողական (հիմնային) դասի հատկությունները (փոփոխականները) և մեթոդները (ֆունկցիաները): Սա խթանում է կոդի կրկնակի օգտագործումը և դասերի հիերարխիաների ստեղծումը:

Հիմնական հատկանիշներ՝

  1. Անցանկալի չէ ըստ նախնական կարգավորումների՝ Kotlin-ում դասերն ու մեթոդները ըստ նախնական կարգավորումների final են, ինչը նշանակում է, որ դրանք չեն կարող ժառանգվել կամ վերագրել: Ցանկալի է ժառանգությունը թույլ տալ՝ նշելով open բանալի բառով:
  2. Կոնստրուկտորներ՝ Մարմինը պետք է կանչի բազային դասերից մեկի կոնստրուկտորը (եթե շատ են, ինտերֆեյսների դեպքում): Կոչը կատարվում է ժառանգական դասի հայտարարության ժամանակ՝ օգտագործելով (...):
  3. Մեթոդների և հատկությունների վերագրում՝ Բազային դասի մեթոդը կամ հատկությունը վերագրելու համար, դրանք պետք է նշվեն open բազային դասում և override՝ ժառանգական դասում:
  4. super՝ super բանալի բառը օգտագործվում է բազային դասի անդամներին հասնելու համար ժառանգական դասից:
  5. Պարզ ժառանգություն՝ իրականացման՝ Kotlin-ն աջակցում է միայնակ իրականացման ժառանգությանը (մեկ դասից), բայց նաև աջակցում է բազմակի ինտերֆեյսների ժառանգությանը:

Օրինակ՝ բազային դաս:

// Բազային դաս
open class Animal(val name: String) {
    open fun makeSound() {
        println("$name ձայն է հանում")
    }
}

Ժառանգական դասի օրինակ՝

// Ժառանգական դաս
class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("$name գոռում է")
    }
}

Օգտագործում՝

// Օբյեկտների օգտագործում
fun main() {
    val animal = Animal("Ընդհանուր կենդանի")
    animal.makeSound() // Արտածում՝ Ընդհանուր կենդանի ձայն է հանում

    val dog = Dog("Bobby")
    dog.makeSound() // Արտածում՝ Bobby գոռում է
}