Հիմնական տարբերություն – Պոլիմորֆիզմ ընդդեմ ժառանգության OOP-ում
Օբյեկտ-կողմնորոշված ծրագրավորումը (OOP) սովորաբար օգտագործվում է ծրագրակազմ մշակելու համար: Ծրագրավորման շատ լեզուներ աջակցում են օբյեկտի վրա հիմնված ծրագրավորմանը: Օբյեկտ-կողմնորոշված ծրագրավորումը դասերի և օբյեկտների միջոցով ծրագիր նախագծելու մեթոդաբանություն է: OOP-ում դասը օբյեկտ ստեղծելու ծրագիր է: Դասը ունի հատկություններ և մեթոդներ: Օբյեկտը դասի օրինակ է: OOP-ը պարունակում է չորս սյուներ, ինչպիսիք են ժառանգությունը, պոլիմորֆիզմը, աբստրակցիան և ինկապսուլյացիան: Այս հոդվածը քննարկում է OOP-ում պոլիմորֆիզմի և ժառանգության միջև եղած տարբերությունը: OOP-ում պոլիմորֆիզմի և ժառանգության հիմնական տարբերությունն այն է, որ պոլիմորֆիզմը օբյեկտի բազմաթիվ ձևերով վարվելու ունակությունն է, իսկ ժառանգությունը նոր դաս ստեղծելն է՝ օգտագործելով գոյություն ունեցող դասի հատկությունները և մեթոդները:
Ի՞նչ է պոլիմորֆիզմը OOP-ում:
Պոլիմորֆիզմը նշանակում է բազմաթիվ ձևեր: Մեկ օբյեկտը կարող է ունենալ մի քանի վարքագիծ: Պոլիմորֆիզմը կարելի է բաժանել երկու կատեգորիայի. Նրանք գերբեռնում և գերակայում են:
Գերբեռնում
Վերադարձեք Java-ով գրված ստորև ներկայացված ծրագրին:
Նկար 01. գերբեռնում
Ըստ վերը նշված ծրագրի՝ ստեղծվում է A տիպի օբյեկտ։ obj.sum(); այն կտա արդյունք՝ կապված մեթոդի sum(). Obj.sum(2, 3) զանգահարելիս; այն կտա ելքը՝ կապված գումարի հետ (int a, int b): Կարելի է նկատել, որ միևնույն առարկան ունի տարբեր վարքագիծ՝ կախված իրավիճակից։ Երբ կան մի քանի մեթոդներ նույն անունով, բայց տարբեր պարամետրերով, դա հայտնի է որպես գերբեռնվածություն:Այն նաև հայտնի է որպես ստատիկ կապման կամ կազմման ժամանակի պոլիմորֆիզմ։
Գերակայող
Պոլիմորֆիզմի մեկ այլ տեսակ գերակա է: Տե՛ս ստորև ներկայացված Java-ով գրված ծրագիրը:
Նկար 02. Գերակայող
Ըստ վերը նշված ծրագրի, A դասում կա ցուցադրման մեթոդ (): B դասը տարածվում է A դասից: Հետևաբար, A դասի բոլոր մեթոդները հասանելի են B դասի կողմից: Այն ժառանգական է: Ժառանգության հայեցակարգը ավելի ուշ նկարագրված է:
B դասը նույնպես ունի նույն մեթոդի ցուցադրումը (): Ա տիպի օբյեկտ ստեղծելիս և ցուցադրման մեթոդ կանչելիս ելքը կտա B: Ա դասի ցուցադրման մեթոդը վերագրվում է B դասի ցուցադրման մեթոդով: Այսպիսով, ելքը B. է
Երբ կան նույն անունով և նույն պարամետրերով մեթոդներ, բայց երկու տարբեր դասերում, և դրանք կապված են ժառանգության հետ, դա հայտնի է որպես գերակայող:Այն նաև հայտնի է որպես ուշ կապում, դինամիկ կապում, վազքի ժամանակի պոլիմորֆիզմ: Գերբեռնումը և գերակշռումը կոչվում են պոլիմորֆիզմ: Դա օբյեկտ կողմնորոշված ծրագրավորման հիմնական հայեցակարգ է:
Ի՞նչ է ժառանգությունը OOP-ում:
Վերադարձեք Java-ով գրված ստորև ներկայացված ծրագրին:
Նկար 03. Ժառանգության օրինակ
Ըստ վերը նշված ծրագրի՝ A դասը ունի մեթոդ sum() և B դասը՝ sub().
Ա դասի sum() մեթոդը կարող է օգտագործվել B դասում՝ օգտագործելով extension բանալի բառը: Գոյություն ունեցող դասի հատկությունների և մեթոդների վերօգտագործումը նոր դաս ստեղծելու համար հայտնի է որպես ժառանգություն: Նույնիսկ B դասում sum() մեթոդ չկա; այն ժառանգված է A դասից: Ժառանգությունը օգտակար է կոդի կրկնակի օգտագործման համար: Ավելի հին դասը կոչվում է բազային դաս, գերդաս կամ ծնող դաս։Ստացված դասը կոչվում է ենթադաս կամ երեխա դաս։
Ժառանգության տեսակները
Գոյություն ունեն ժառանգության տարբեր տեսակներ: Դրանք են՝ մեկ մակարդակի ժառանգություն, բազմամակարդակ ժառանգություն, բազմակի ժառանգություն, հիերարխիկ ժառանգություն և հիբրիդային ժառանգություն:
Միայն ժառանգություն
Մեկ ժառանգության մեջ կա մեկ սուպեր դաս և մեկ ենթադաս: Եթե A դասը սուպեր դասն է, իսկ B դասը՝ ենթադասը, ապա A դասի բոլոր հատկություններն ու մեթոդները հասանելի են B դասի կողմից: Կա միայն մեկ մակարդակ. հետևաբար, այն կոչվում է որպես մեկ մակարդակի ժառանգություն:
Բազմաստիճան ժառանգություն
Բազմամակարդակ ժառանգության մեջ կան դասերի երեք մակարդակ: Միջանկյալ դասը ժառանգում է սուպեր դասից։ Ենթադասը ժառանգում է միջանկյալ դասից: Եթե կան երեք դասեր, ինչպիսիք են A, B և C, ապա A-ն գերդաս է, իսկ B-ն՝ միջանկյալ դաս: Հետո B-ն ժառանգում է A-ից, իսկ C-ն՝ B-ից, դա բազմամակարդակ ժառանգություն է:
Բազմաթիվ ժառանգություն
Բազմակի ժառանգության մեջ կան բազմաթիվ սուպեր դասեր և մեկ ենթադաս: Եթե կան երեք սուպեր դասեր, որոնք կոչվում են A, B, C և D-ն ենթադաս է, ապա D դասը կարող է ժառանգել A, B և C-ից: Բազմակի ժառանգությունն աջակցվում է ծրագրավորման C++ լեզվում: Այն չի ապահովվում ծրագրավորման լեզուներում, ինչպիսիք են Java-ն կամ C-ը: Ինտերֆեյսներն օգտագործվում են այս լեզուներով բազմակի ժառանգության իրականացման համար:
Հիերարխիկ ժառանգություն
Եթե կան A դասեր, որոնք կոչվում են գերդասեր, իսկ B, C-ը ենթադասեր են, այդ ենթադասերը կարող են ժառանգել A դասի հատկությունները և մեթոդները: Ժառանգության այդ տեսակը հայտնի է որպես հիերարխիկ ժառանգություն:
Հիբրիդային ժառանգություն
Կա մեկ այլ հատուկ ժառանգության տեսակ, որը հայտնի է որպես հիբրիդային ժառանգություն: Այն բազմամակարդակ և բազմակի ժառանգությունների համադրություն է: Եթե A, B, C և D դասեր են, իսկ B-ն ժառանգում է A-ից, իսկ D-ն ժառանգում է B-ից և C-ից, ապա դա հիբրիդային ժառանգություն է:
Որո՞նք են նմանությունները պոլիմորֆիզմի և ժառանգականության միջև OOP-ում:
Երկուսն էլ օբյեկտ կողմնորոշված ծրագրավորման հասկացություններ են:
Ո՞րն է տարբերությունը պոլիմորֆիզմի և ժառանգականության միջև OOP-ում:
Պոլիմորֆիզմ ընդդեմ ժառանգության OOP |
|
Պոլիմորֆիզմը օբյեկտի մի քանի ձևով վարվելու ունակություն է: | Ժառանգությունը նոր դաս ստեղծելն է՝ օգտագործելով գոյություն ունեցող դասի հատկությունները և մեթոդները: |
Օգտագործում | |
Պոլիմորֆիզմն օգտագործվում է օբյեկտների համար՝ մեթոդների որ ձև կանչելու համար կոմպիլյացիայի ժամանակ և գործարկման ժամանակ: | Ժառանգությունն օգտագործվում է կոդի կրկնակի օգտագործման համար: |
Իրականացում | |
Պոլիմորֆիզմն իրականացվում է մեթոդներում։ | Ժառանգությունն իրականացվում է դասարաններում։ |
Կատեգորիաներ | |
Պոլիմորֆիզմը կարելի է բաժանել գերբեռնման և գերբեռնման: | Ժառանգությունը կարելի է բաժանել մեկ մակարդակի, բազմաստիճան, հիերարխիկ, հիբրիդային և բազմակի ժառանգության: |
Ամփոփում – Պոլիմորֆիզմ ընդդեմ ժառանգության OOP
Պոլիմորֆիզմը և ժառանգականությունը հիմնական հասկացություններն են Օբյեկտ ուղղված ծրագրավորման մեջ: OOP-ում պոլիմորֆիզմի և ժառանգության միջև տարբերությունն այն է, որ պոլիմորֆիզմը ընդհանուր ինտերֆեյս է բազմաթիվ ձևերի համար, իսկ ժառանգությունը նոր դաս ստեղծելն է՝ օգտագործելով գոյություն ունեցող դասի հատկությունները և մեթոդները: Երկու հասկացություններն էլ լայնորեն օգտագործվում են Ծրագրային ապահովման մշակման մեջ:
Ներբեռնեք PDF պոլիմորֆիզմն ընդդեմ ժառանգության OOP-ում
Դուք կարող եք ներբեռնել այս հոդվածի PDF տարբերակը և օգտագործել այն անցանց նպատակներով՝ ըստ մեջբերումների: Խնդրում ենք ներբեռնել PDF տարբերակը այստեղ Տարբերությունը պոլիմորֆիզմի և ժառանգության միջև OOP-ում