Intern
Меросгирӣ дар барномасозӣ чист ва барои чӣ истифода мешавад؟
sobes.tech AI
Ҷавоб аз AI
Меросхошлик — бу обʼектга йўналтирилган дастурлаш (OOP) механизми бўлиб, бир синф (подсинф, қўшимча) бошқа бир синфдан (ота, асосий) хусусиятларини (атрибутлар) ва хулқ-атворини (методлар) мерос олиш имконини беради.
Қўлланиладиган соҳалар:
- Кодни қайта ишлатиш: Асосий синфнинг методлари ва атрибутлари қўшимча синфда мавжуд бўлиб, кодни такрорлашдан сақлайди.
- Синфлар иерархиясини яратиш: Объектлар ўртасида "бу — бир" (is-a) муносабатларини моделлаштириш имконини беради. Масалан,
Маймул—Жонзот. - Функционалликни кенгайтириш: Қўшимча синф ўзининг атрибутларини ва методларини қўшиши ёки мерос олаётган хулқ-атворини қайтадан ёзиш (ўзгартириш) мумкин.
- Полиморфизм: Динамик диспетчер билан бирга, мерос олиш турли турдаги объектларни ишлашга имконият яратади, уларнинг асосий синфига мурожаат қилиш орқали.
Pythonда мисол:
class Жонзот:
# Асосий синф
def __init__(self, ном):
self.ном = ном
def чиқариш_туғрисида(self):
pass # Бўш метод, қўшимча синфларда қайта ёзилади
class Маймул(Жонзот):
# Қўшимча синф
def __init__(self, ном, тур):
super().__init__(ном) # Асосий синфнинг конструкторини чақириш
self.тур = тур
def чиқариш_туғрисида(self):
# Методни қайта ёзиш
print("Мяу!")
# Қўлланиш
менинг_маймулим = Маймул("Бобик", "Овчарка")
print(менинг_маймулим.ном) # Мерос олинган атрибут
менинг_маймулим.чиқариш_туғрисида() # Қайта ёзилган метод