Sobes.tech
Junior — Middle

რა არის ობიექტზე ორიენტირებული პროგრამირების აბსტრაქტული კლასების როლი და დანიშნულება?

sobes.tech AI

პასუხი AI-სგან

ობიექტზე ორიენტირებული პროგრამირების სფეროში აბსტრაქტული კლასები სხვა კლასების შექმნისთვის შაბლონებად служობენ. ისინი პირდაპირი ინსტანცირებით ვერ გამოიყენება და ჩვეულებრივ შეიცავს როგორც განხორციელებულ მეთოდებს, ასევე აბსტრაქტულ (რეალიზაციის გარეშე) მეთოდებს, რომლებიც უნდა იყოს გადაწერილი ქვესკლასებში. ეს საშუალებას აძლევს განსაზღვროს საერთო ინტერფეისი და საწყისი ქცევა, ამავდროულად უზრუნველყოფს მოქნილობას კონკრეტული რეალიზაციებისათვის.

მაგალითი Kotlin-ში (Android):

abstract class Animal {
    abstract fun makeSound()
    fun sleep() {
        println("ძინავს")
    }
}

class Dog : Animal() {
    override fun makeSound() {
        println("ჰაუ-ჰაუ")
    }
}

აქ, Animal არის აბსტრაქტული კლასი, რომელიც განსაზღვრავს ზოგად კონტრაქტს ყველა ცხოველისთვის, ხოლო Dog ახორციელებს კონკრეტულ ხმას.