Վերացական դաս ընդդեմ ժառանգության
Աբստրակտ դասը և ժառանգությունը երկու կարևոր օբյեկտ կողմնորոշված հասկացություններ են, որոնք հայտնաբերված են շատ օբյեկտ կողմնորոշված ծրագրավորման լեզուներում, ինչպիսիք են Java-ը: Աբստրակտ դասը կարելի է դիտարկել որպես կանոնավոր (կոնկրետ) դասի վերացական տարբերակ, մինչդեռ ժառանգությունը թույլ է տալիս նոր դասերին ընդլայնել այլ դասեր։ Աբստրակտ դասը դաս է, որը չի կարող սկզբնավորվել, բայց կարող է ընդլայնվել: Այսպիսով, վերացական դասերը իմաստալից են միայն այն դեպքում, եթե ծրագրավորման լեզուն աջակցում է ժառանգությանը: Java-ում Abstract դասերը հայտարարվում են Abstract հիմնաբառի միջոցով, մինչդեռ Extends հիմնաբառը օգտագործվում է (սուպեր) դասից ժառանգելու համար:
Ի՞նչ է Աբստրակտ դասը:
Սովորաբար, Աբստրակտ դասերը, որոնք նաև հայտնի են որպես Աբստրակտ բազային դասեր (ABC), չեն կարող ինստրուկտացվել (այդ դասի օրինակը չի կարող ստեղծվել): Այսպիսով, Աբստրակտ դասերը իմաստալից են միայն այն դեպքում, եթե ծրագրավորման լեզուն աջակցում է ժառանգությանը (դասերի ընդլայնումից ենթադասեր ստեղծելու կարողություն): Աբստրակտ դասերը սովորաբար ներկայացնում են վերացական հասկացություն կամ էություն՝ մասնակի կամ առանց իրագործման: Հետևաբար, Աբստրակտ դասերը գործում են որպես ծնող դասեր, որոնցից բխում են երեխայի դասերը, որպեսզի երեխայի դասը կիսի ծնող դասի թերի հատկանիշները, և դրանք լրացնելու համար կարող է ավելացվել ֆունկցիոնալությունը::
Աբստրակտ դասերը կարող են պարունակել Աբստրակտ մեթոդներ: Աբստրակտ դասը ընդլայնող ենթադասերը կարող են իրականացնել այս (ժառանգված) Աբստրակտ մեթոդները։ Եթե երեխա դասը իրականացնում է բոլոր նման Abstract մեթոդները, ապա դա կոնկրետ դաս է: Բայց եթե դա չլինի, ապա մանկական դասարանը նույնպես դառնում է Աբստրակտ դաս: Այս ամենը նշանակում է, որ երբ ծրագրավորողը դաս է առաջադրում որպես Abstract, նա ասում է, որ դասը թերի կլինի և այն կունենա տարրեր, որոնք պետք է լրացվեն ժառանգող ենթադասերով:Սա երկու ծրագրավորողների միջև պայմանագիր ստեղծելու լավ միջոց է, որը հեշտացնում է ծրագրային ապահովման մշակման խնդիրները: Ծրագրավորողը, ով գրում է կոդը ժառանգելու համար, պետք է ճշգրիտ հետևի մեթոդի սահմանումներին (բայց, իհարկե, կարող է ունենալ իր սեփական իրականացումը):
Ի՞նչ է ժառանգությունը:
Ժառանգությունը օբյեկտ կողմնորոշված հասկացություն է, որը թույլ է տալիս նոր դասերին ընդլայնել այլ դասեր: Extends հիմնաբառը օգտագործվում է Java ծրագրավորման լեզվում ժառանգության հայեցակարգն իրականացնելու համար: Ժառանգությունը, ըստ էության, ապահովում է կոդի վերօգտագործում՝ թույլ տալով ընդլայնել գոյություն ունեցող դասի հատկությունները և վարքագիծը նոր սահմանված դասի կողմից: Երբ նոր ենթադասը (կամ ստացված դասը) ընդլայնում է սուպեր դասը (կամ մայր դասը), այդ ենթադասը կժառանգի սուպեր դասի բոլոր ատրիբուտներն ու մեթոդները: Ենթադասը կարող է կամայականորեն վերացնել վարքագիծը (մեթոդներին տրամադրել նոր կամ ընդլայնված գործառույթներ) ժառանգված մայր դասից: Սովորաբար, ենթադասը չի կարող ընդլայնել մի քանի սուպեր դասեր (օրինակ՝ Java-ում):Հետևաբար, դուք չեք կարող օգտագործել երկարաձգումներ բազմակի ժառանգության համար: Բազմաթիվ ժառանգություն ունենալու համար դուք պետք է օգտագործեք միջերեսներ:
Ո՞րն է տարբերությունը վերացական դասի և ժառանգության միջև:
Վերացական դասերը սովորաբար ներկայացնում են վերացական հասկացություն կամ մասնակի կամ առանց իրագործման մի էություն: Ժառանգությունը թույլ է տալիս նոր դասերին ընդլայնել այլ դասերը: Քանի որ Աբստրակտ դասերը չեն կարող օրինակելի լինել, դուք պետք է օգտագործեք ժառանգության հասկացությունը Աբստրակտ դասերից օգտվելու համար: Հակառակ դեպքում, Abstract դասը օգուտ չունի: Աբստրակտ դասերը կարող են պարունակել Աբստրակտ մեթոդներ, և երբ դասը ընդլայնվում է, բոլոր մեթոդները (վերացական և կոնկրետ) ժառանգվում են: Ժառանգված դասը կարող է իրականացնել ցանկացած կամ բոլոր մեթոդները: Եթե բոլոր Abstract մեթոդները չեն իրականացվում, ապա այդ դասը նույնպես դառնում է Abstract դաս։ Դասը չի կարող ժառանգել մեկից ավելի Abstract դասերից (սա ինքնին Abstract դասերի որակ չէ, այլ ավելի շուտ ժառանգականության սահմանափակում):
Հարակից գրառումներ՝
Տարբերությունը վերացական դասի և կոնկրետ դասի միջև
Տարբերությունը վիրտուալի և վերացականի միջև
Տարբերություն Աբստրակտ դասի և ինտերֆեյսի միջև
Տարբերություն ներդրման և ընդարձակման միջև
Տարբերություն գրաֆիկի և ծառի միջև
Պատկերված՝ Ծրագրավորում Պիտակված է՝ ABC, վերացական, վերացական բազային դասեր, վերացական դաս, վերացական դասեր, վերացական հիմնաբառ, վերացական մեթոդներ, կոնկրետ դաս, ընդլայնում է հիմնաբառը, ժառանգություն, ժառանգության դաս, ժառանգված դաս, Java, բազմակի ժառանգություն, օբյեկտ կողմնորոշված հասկացություններ, կանոնավոր դաս, սուպեր դաս
Հեղինակի մասին՝ Indika
Indika, BSc. Eng, MSECE Համակարգչային ճարտարագիտություն, բ.գ.թ. Համակարգչային գիտություն, ասիստենտ է և ունի հետազոտական հետաքրքրություններ կենսաինֆորմատիկայի, հաշվողական կենսաբանության և կենսաբժշկական բնական լեզվի մշակման ոլորտներում:
մեկնաբանություն
-
Ջեյսոնն ասում է
օգոստոսի 30, 2017, ժամը 13:25
Շնորհակալություն տարբերությունը բացատրելու համար: Իմ բոլոր հարցերը լուծվել են դրանով։
Պատասխանել
-
Աուս ասում է
մայիսի 10, 2019, ժամը 15:04
Լավագույն պատասխանը համացանցում, Ուսուցիչը չի բացատրում այս բաները և անիմաստ է, մոնոտոն mf: Ահա թե ինչպես եք բացատրում հասկացությունները:
Պատասխանել
Պատասխան թողնել Չեղարկել պատասխանը
Ձեր էլ. հասցեն չի հրապարակվի: Պարտադիր դաշտերը նշված են
Մեկնաբանություն
Անուն
Էլփոստ
Կայք
Նշված գրառումներ
Տարբերությունը կորոնավիրուսի և մրսածության ախտանիշների միջև
Տարբերությունը Coronavirus-ի և SARS-ի միջև
Տարբերությունը կորոնավիրուսի և գրիպի միջև
Տարբերությունը Coronavirus-ի և Covid 19-ի միջև
Դուք կարող եք հավանել
Տարբերությունը սիբիրյան խասկիի և մալամուտի միջև
Տարբերություն AB-ի և BC հաշվարկի միջև
Տարբերությունը կրկնակի հիմնական և կրկնակի աստիճանի միջև
Տարբերությունը բաց վերնաշապիկների և մուգ վերնաշապիկների փոխանցման թղթի միջև
-ի միջև