Junior
Роли мерос дар барномасозии объектӣ ва чаро он барои синфҳо муҳим аст?
sobes.tech AI
Ҷавоб аз AI
Мирас, якс (подкласа/ҳавола) автоматӣ ба дигар як класс (ота/суперкласс) хусусиятҳо ва методҳоро мегирад, ки ин ба сохтори ҳирасҳояи классҳо мусоидат мекунад.
Маҳзият барои классҳо:
- Истифодаи такрорӣ: Аз такроркорӣ пешгирӣ мекунад ва имкон медиҳад, ки функсионалияти классҳои падарро дар классҳои фарзанд истифода бурда шавад.
- Пенҳоншавӣ: Имкон медиҳад, ки классҳои нав бо илова кардани функсионалиятҳои нав бар асоси мавҷударо сохта шаванд.
- Ташкилот: Классҳоро дар ҳирасҳояи мантиқӣ ташкил мекунад, ки фаҳмиши сохтори барнома осонтар мешавад.
- Полифромизм: Заминаи асосӣ барои полиморфизмро фароҳам меорад, ки дар он объектҳои класи гуногун метавонанд тавассути истинод ба класс падар ба таври якхела коркард шаванд.
Масалан (Python):
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass # Методи асосӣ, ки бояд навишт шавад
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
# Истифода:
dog = Dog("Buddy")
cat = Cat("Whiskers")
print(f"{dog.name} мегӯяд: {dog.speak()}")
print(f"{cat.name} мегӯяд: {cat.speak()}")
Дар ин мисол, Dog ва Cat аз Animal мерос мегиранд. Онҳо аз хосияти name дар Animal истифода мебаранд ва методи speak-ро барои иҷрои рафторҳои махсус нав месозанд.