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("ბადრი")
    dog.makeSound() // გამოშვება: ბადრი ბღაოს
}