Ժառանգությունը ծրագրավորման հիմնական հասկացություններից մեկն է օբյեկտ-կողմնորոշված. Թույլ է տալիս դասին ժառանգել մեկ այլ դասի հատկությունները և մեթոդները:
Պարզ ժառանգություն
Պարզ ժառանգությունն այն է, երբ դասը ժառանգում է միայն հատկություններ և մեթոդներ մայր դասից: Պատկերացրեք, որ դուք ունեք ծնողների դասարան, որը կոչվում է «Կենդանիներ» և երեխաների դասարան, որը կոչվում է «Շուն»: «Շուն» դասը կժառանգի «Կենդանիներ» դասի մեթոդներն ու հատկությունները, ինչպիսիք են «ուտել», «քնել», «շնչել», ի թիվս այլոց:
Բազմակի ժառանգություն
Բազմակի ժառանգությունն այն է, երբ դասը ժառանգում է հատկություններ և մեթոդներ մեկից ավելի ծնող դասերից: Այլ կերպ ասած, երեխայի դասը կարող է ունենալ մի քանի ծնող դասեր: Այս տեսակի ժառանգությունը հնարավոր է որոշ ծրագրավորման լեզուներում, ինչպիսիք են C++-ը, բայց ոչ մյուսներում, օրինակ՝ Java-ում:
Ինչո՞ւ չի թույլատրվում բազմակի ժառանգություն բոլոր ծրագրավորման լեզուներում:
Բազմաթիվ ժառանգությունը կարող է հանգեցնել անորոշության խնդիրների: Այլ կերպ ասած, եթե երկու մայր դասեր ունեն նույն անունով մեթոդներ կամ հատկություններ, հնարավոր է պարզ չլինի, թե այդ մեթոդներից կամ հատկություններից որն օգտագործել երեխայի դասի համար: Այդ պատճառով որոշ ծրագրավորման լեզուներ թույլ չեն տալիս բազմակի ժառանգություն:
Ծրագրավորման լեզուների ցանկ, որոնք աջակցում են բազմակի ժառանգությանը.
- C++
- Փիթոն
- Ռուբին
Ծրագրավորման լեզուների ցանկ, որոնք Չեն աջակցում բազմակի ժառանգությանը.
- Ջավա
- C#
- PHP
Եզրափակելով, պարզ ժառանգությունը և բազմակի ժառանգությունը օբյեկտի վրա հիմնված ծրագրավորման երկու հիմնական հասկացություններն են: Պարզ ժառանգությունը ենթադրում է, որ երեխա դասը կարող է ժառանգել հատկություններ և մեթոդներ միայն մեկ ծնող դասից, մինչդեռ բազմակի ժառանգությունը ենթադրում է, որ երեխա դասը կարող է ժառանգել հատկություններ և մեթոդներ մեկից ավելի ծնող դասերից: Կարևոր է նշել, որ ոչ բոլոր ծրագրավորման լեզուներն են թույլ տալիս բազմակի ժառանգություն՝ մեթոդների և հատկությունների հնարավոր երկիմաստության պատճառով:
Համոզվեք, որ հասկանում եք օբյեկտի վրա հիմնված ծրագրավորման այս երկու հիմնական հասկացությունների տարբերությունը:
Ես Սեբաստիան Վիդալն եմ, համակարգչային ինժեներ, որը կրքոտ է տեխնոլոգիայով և DIY-ով: Ավելին, ես եմ ստեղծողը tecnobits.com, որտեղ ես կիսվում եմ ձեռնարկներով՝ տեխնոլոգիան բոլորի համար ավելի մատչելի և հասկանալի դարձնելու համար: