Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ, რას ნიშნავს ობიექტზე ორიენტირებულ პროგრამირებაში აბსტრაქტული კლასი?

sobes.tech AI

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

ობიექტზე ორიენტირებული პროგრამირების ფარგლებში, აბსტრაქტული კლასი — ეს კლასი, რომელიც პირდაპირი მაგალითების შექმნისთვის განკუთვნილი არ არის, არამედ სხვა კლასებისთვის ძირითადი შაბლონია.

აბსტრაქტული კლასის ძირითადი მახასიათებლები:

  • შეიძლება შეიცავდეს განხორციელებულ მეთოდებს და აბსტრაქტულ (განხორციელების გარეშე) მეთოდებს.
  • აბსტრაქტული მეთოდები უნდა განხორციელდეს მემკვიდრე კლასებში.
  • საშუალებას აძლევს განსაზღვროს საერთო ინტერფეისი და ქცევა დაკავშირებული კლასების ჯგუფისთვის.

Python-ში აბსტრაქტული კლასები შექმნილია abc მოდულის და @abstractmethod დეკორატორის გამოყენებით.

მაგალითი:

from abc import ABC, abstractmethod

class Animal(ABC):
    @abstractmethod
    def make_sound(self):
        pass

class Dog(Animal):
    def make_sound(self):
        print("ჰავ")

# animal = Animal()  # შეცდომა: ვერ შექმნით აბსტრაქტული კლასის ინსტანს
dog = Dog()
dog.make_sound()  # გამოტანა: ჰავ

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