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() # გამოტანა: ჰავ
ამ გზით, აბსტრაქტული კლასი განსაზღვრავს ვალდებულ მეთოდთა ნაკრებს მემკვიდრე კლასებისთვის, რაც უზრუნველყოფს ინტერფეისის ერთგვაროვნებას.