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.