Sobes.tech
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(менинг_маймулим.ном) # Мерос олинган атрибут
менинг_маймулим.чиқариш_туғрисида() # Қайта ёзилган метод