Տարբերությունը գերբեռնման և գերբեռնման միջև C-ում

Բովանդակություն:

Տարբերությունը գերբեռնման և գերբեռնման միջև C-ում
Տարբերությունը գերբեռնման և գերբեռնման միջև C-ում

Video: Տարբերությունը գերբեռնման և գերբեռնման միջև C-ում

Video: Տարբերությունը գերբեռնման և գերբեռնման միջև C-ում
Video: Шломо Бенарци: Сбереги больше на завтра, завтра. 2024, Նոյեմբեր
Anonim

Հիմնական տարբերություն – Գերբեռնում ընդդեմ գերբեռնման C-ում

C-ում գերագնահատման և գերբեռնման հիմնական տարբերությունն այն է, որ գերբեռնված մեթոդի կանչի կապումը դրա սահմանմանը տեղի է ունենում գործարկման ժամանակ, մինչդեռ գերբեռնված մեթոդի կանչի կապումը դրա սահմանմանը տեղի է ունենում կոմպիլյացիայի ժամանակ:

C-ը ընդհանուր նշանակության ծրագրավորման լեզու է, որը մշակվել է Microsoft-ի կողմից: C-ի հիմնական առավելությունն այն է, որ այն աջակցում է Object Oriented Programming (OOP): OOP-ի մեկ սյունը պոլիմորֆիզմն է: Այն օբյեկտին տալիս է մի քանի վարքագիծ: Պոլիմորֆիզմի մեջ կա երկու տեսակ, որը հայտնի է որպես գերակայող և գերբեռնված: Այս հոդվածը քննարկում է C-ում մեթոդի գերակայության և գերբեռնման միջև եղած տարբերությունը:

Ի՞նչ է գերակայում C-ում:

Կա մեկ այլ կարևոր հասկացություն OOP-ում ժառանգությունը: Դա արդեն գոյություն ունեցող դասի ատրիբուտներն ու մեթոդներն օգտագործելն է: Այն բարելավում է կոդի կրկնակի օգտագործման հնարավորությունը: Արդեն գոյություն ունեցող դասը բազային դասն է, իսկ նոր դասը հայտնի է որպես ստացված դաս։ Պոլիմորֆիզմի գերակայության դեպքում պետք է լինի բազային դաս և ածանցյալ դաս: Վերականգնված մեթոդի կանչի միացումը սահմանմանը տեղի է ունենում գործարկման ժամանակ: Օրինակը հետևյալն է.

Տարբերությունը C-ում գերագնահատման և գերբեռնման միջև
Տարբերությունը C-ում գերագնահատման և գերբեռնման միջև

Նկար 01. C ծրագիր գերակայող

Ըստ վերը նշված ծրագրի՝ Shape դասը բազային դաս է, և այն պարունակում է ցուցադրման մեթոդը։ Rectangle և Triangle դասերը ստացված դասեր են: Այս ածանցյալ դասերը նույնպես ունեն նույն մեթոդի ցուցադրումը իրենց սեփական իրականացումներով:

Նախ, ստեղծվում է հղման obj փոփոխականը: Այն ցույց է տալիս Shape օբյեկտը: Այսպիսով, Shape դասի ցուցադրման մեթոդը կկատարվի: Այնուհետև հղման փոփոխականը ցույց է տալիս ուղղանկյուն օբյեկտը: Այսպիսով, Rectangle դասի ցուցադրման մեթոդը կկատարվի: Վերջապես, հղման փոփոխականը ցույց է տալիս Triangle օբյեկտը: Այսպիսով, Triangle դասի ցուցադրման մեթոդը կկատարվի: Հիմնական դասի ցուցադրման մեթոդը փոխարինվում է ստացված դասերի ցուցադրման մեթոդներով:

Գործարկման մեթոդը որոշվում է գործարկման ժամանակ: Shape դասը գրված է «վիրտուալ» բանալի բառով: Rectangle և Triangle դասերը գրված են «override» հիմնաբառով: Եթե այս հիմնաբառերը չօգտագործվեն, ելքը կտպագրի Shape դասի ցուցադրման մեթոդի բովանդակությունը բոլորի համար:

Ի՞նչ է գերբեռնումը C-ում:

Գերբեռնման ժամանակ մի քանի մեթոդներ ունեն նույն անունը, բայց տարբեր պարամետրերով: Պարամետրերը կարող են լինել տարբեր տեսակի. Մեթոդները կարող են ունենալ նաև տարբեր քանակի պարամետրեր:Մեթոդների գերբեռնվածությունը տեղի է ունենում նույն դասում: Ծանրաբեռնված մեթոդների միացումը սահմանմանը տեղի է ունենում կոմպիլյացիայի ժամանակ: Տե՛ս ստորև բերված C ծրագիրը:

Հիմնական տարբերությունը C-ում գերագնահատման և գերբեռնման միջև
Հիմնական տարբերությունը C-ում գերագնահատման և գերբեռնման միջև

Նկար 02. C ծրագիր գերբեռնվածությամբ

Ըստ վերոնշյալ ծրագրի՝ A դասը ունի նույն անունով երկու մեթոդ, որը կոչվում է գումար: Նրանք ունեն տարբեր տեսակի պարամետրեր: Հիմնական ծրագրում ստեղծվում է Ա-ի օբյեկտ։ Գումարը (2, 3) կկանչի գումարի մեթոդը ամբողջ թվերով: Գումարը (5.1, 7.94) կկանչի գումարի մեթոդը կրկնակի արժեքներով: Երկու մեթոդներն էլ ունեն նույն անվանումը և նույն թվով պարամետրերը: Բայց պարամետրերի տեսակները տարբեր են: Պահանջվող մեթոդը կոչվում է համապատասխանաբար: Գերբեռնում կարող է առաջանալ նաև, եթե մեթոդների անվանումները և պարամետրերի տեսակները նույնն են, բայց պարամետրերի քանակը տարբեր է:

Ո՞րն է նմանությունը C-ում գերագնահատման և գերբեռնման միջև:

Եվ Overriding-ը և Overloading-ը C-ում պոլիմորֆիզմի տեսակներ են:

Ո՞րն է տարբերությունը C-ում վերագրանցման և գերբեռնման միջև:

Գերբեռնում ընդդեմ գերբեռնման C-ում

Գերակայումը C-ում նշանակում է ածանցյալ դասի մեթոդով հատուկ իրականացում ապահովել բազային դասում արդեն գոյություն ունեցող մեթոդի համար: C-ում գերբեռնումը նշանակում է ստեղծել մի քանի մեթոդներ նույն անունով տարբեր իրականացումներով:
Պարամետրեր
C Overriding-ում մեթոդներն ունեն նույն անունը, նույն պարամետրերի տեսակները և նույն թվով պարամետրերը: C գերբեռնման ժամանակ մեթոդներն ունեն նույն անունը, բայց տարբեր թվով պարամետրեր կամ տարբեր տեսակի պարամետրեր:
Առաջադրում
C-ում գերակայումը տեղի է ունենում բազային դասի և ստացված դասի ներսում: C-ում գերբեռնումը տեղի է ունենում նույն դասում:
Պարտադիր ժամանակ
Գերակայված մեթոդի կանչի կապումը դրա սահմանմանը տեղի է ունենում գործարկման ժամանակ: Գերբեռնված մեթոդի կանչի կապումը դրա սահմանմանը տեղի է ունենում կոմպիլյացիայի ժամանակ:
Հոմանիշներ
Գերակայությունը կոչվում է որպես գործարկման ժամանակի պոլիմորֆիզմ, դինամիկ պոլիմորֆիզմ կամ ուշ կապում: Գերբեռնումը կոչվում է կոմպիլյացիայի ժամանակի պոլիմորֆիզմ, ստատիկ պոլիմորֆիզմ կամ վաղ կապում:

Ամփոփում – Overriding vs Overloading C-ում

Գերբեռնումը և գերբեռնումը պոլիմորֆիզմի երկու տեսակ են: C-ում գերագնահատման և գերբեռնման միջև տարբերությունն այն է, որ գերբեռնված մեթոդի կանչի կապումը դրա սահմանմանը տեղի է ունենում գործարկման ժամանակ, մինչդեռ գերբեռնված մեթոդի կանչի կապումը դրա սահմանմանը տեղի է ունենում կոմպիլյացիայի ժամանակ:

Խորհուրդ ենք տալիս: