Sobes.tech
Junior

Obyekt yönümlü proqramlaşdırmada (OOP) irsiyyət nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Mövcud siniflərdən (ata-ana) əsaslanan yeni siniflərin (alt siniflərin) yaradılmasını təmin edən mexanizm, onların xüsusiyyətlərini və metodlarını miras alır. Bu, kodun təkrar istifadəsini və siniflərin iyerarxiyasının təşkilini təşviq edir.

Əsas anlayışlar:

  • Ata sinfi (Əsas sinif, Super sinif): Xüsusiyyətlər və metodlar miras alınan sinif.
  • Alt sinif (Törəmə sinif, Subsinif): Ata sinifdən xüsusiyyətlər və metodlar miras alan sinif.
  • Çıxış məlumatları:
    • Alt sinif, ata sinfinin bütün ictimai və qorunan sahələrini və metodlarını miras alır. Ata sinfinin şəxsi üzvləri birbaşa alt sinifdə mövcud deyil.
    • Alt sinif, öz sahələrini və metodlarını əlavə edə bilər.
    • Alt sinif, miras alınmış metodları (polimorfizm) dəyişə bilər.

Python nümunəsi:

class Animal:
    # Heyvanlar üçün əsas sinif
    def __init__(self, name):
        self.name = name

    def speak(self):
        # Heyvanların səsi üçün ümumi metod
        pass

class Dog(Animal):
    # Animal-dən miras alan itlər üçün alt sinif
    def __init__(self, name, breed):
        super().__init__(name)  # Ata sinfinin konstruktorunu çağır
        self.breed = breed

    def speak(self):
        # Itlər üçün speak metodunu üstələmək
        print(f"{self.name} deyir: Woof!")

class Cat(Animal):
    # Animal-dən miras alan pişiklər üçün alt sinif
    def speak(self):
        # Pişiklər üçün speak metodunu üstələmək
        print(f"{self.name} deyir: Meow!")

# İrsi istifadə
my_dog = Dog("Buddy", "Labrador")
my_cat = Cat("Whiskers")

my_dog.speak()  # Çıxış: Buddy deyir: Woof!
my_cat.speak()  # Çıxış: Whiskers deyir: Meow!
print(my_dog.name) # Çıxış: Buddy
print(my_dog.breed) # Çıxış: Labrador

İrsi növləri (proqramlaşdırma dilindən asılıdır):

  • Sadə irsi: Sinif yalnız bir ata sinifindən irsi ala bilər.
  • Çoxlu irsi: Sinif bir neçə ata sinifindən irsi ala bilər.

İrsin üstünlükləri:

  • Kodun təkrar istifadəsi: Ümumi xüsusiyyətlər və metodlar əsas sinfə çıxarılaraq kod təkrarlanmasının qarşısını alır.
  • Siniflər hiyerarşisi: "bir növ" əlaqələrini əks etdirən məntiqi strukturda siniflərin təşkilatı.
  • Genişləndirilə bilənlik: Mövcud sinifləri dəyişdirmədən yeni alt siniflər yaradaraq yeni funksionallıqlar əlavə etmək.
  • Polimorfizm: Müxtəlif siniflərin obyektlərini eyni şəkildə işləmək imkanı, əsas sinfə istinad vasitəsilə.

İrsin çatışmazlıqları:

  • Güclü əlaqə: Ata sinfindəki dəyişikliklər bütün alt siniflərə təsir edə bilər.
  • Almaz problemi (çoxlu irsi): Ümumi ata sinifindən irsi alan siniflər arasında qeyri-müəyyənlik.
  • Həddindən artıq istifadə: Çətin başa düşülən və dəstəklənən mürəkkəb iyerarxiyalar yarada bilər.