Տարբերություն ներդրման և ընդարձակման միջև

Տարբերություն ներդրման և ընդարձակման միջև
Տարբերություն ներդրման և ընդարձակման միջև

Video: Տարբերություն ներդրման և ընդարձակման միջև

Video: Տարբերություն ներդրման և ընդարձակման միջև
Video: 7 ԱՄԵՆԱԴԱԺԱՆ ՕՐԵՆՔՆԵՐՈՎ ԴՊՐՈՑՆԵՐԸ║ՍԱՐՍԱՓԵԼԻ ԴՊՐՈՑՆԵՐ 2024, Հուլիսի
Anonim

Իրականացնում է ընդդեմ ընդարձակման

Implements և Extends երկու հիմնաբառեր են, որոնք հայտնաբերվել են Java ծրագրավորման լեզվում, որոնք ապահովում են լրացուցիչ գործառույթները նոր դասին փոխանցելու միջոց: Implements հիմնաբառը բացահայտորեն օգտագործվում է ինտերֆեյսի իրականացման համար, մինչդեռ Extends հիմնաբառը օգտագործվում է (սուպեր) դասից ժառանգելու համար: Խնդրում ենք նկատի ունենալ, որ ժառանգության և ինտերֆեյսների հասկացություններն առկա են օբյեկտ կողմնորոշված ծրագրավորման լեզուների մեծ մասում, ինչպիսիք են C-ը և VB. NET-ը, սակայն դրանք առաջարկում են տարբեր շարահյուսություն կամ հիմնաբառեր այդ հասկացությունները կիրառելու համար: Այս հոդվածը կենտրոնանում է միայն Java-ում սահմանված հիմնաբառերի իրականացման և ընդարձակման վրա:

Ընդարձակվում է

Extends հիմնաբառը օգտագործվում է Java ծրագրավորման լեզվում ժառանգության հայեցակարգն իրականացնելու համար: Ժառանգությունը, ըստ էության, ապահովում է կոդի վերօգտագործում՝ թույլ տալով ընդլայնել գոյություն ունեցող դասի հատկությունները և վարքագիծը նոր սահմանված դասի կողմից: Երբ նոր ենթադասը (կամ ստացված դասը) ընդլայնում է սուպեր դասը (կամ մայր դասը), այդ ենթադասը կժառանգի սուպեր դասի բոլոր ատրիբուտներն ու մեթոդները: Ենթադասը կարող է կամայականորեն վերացնել վարքագիծը (մեթոդներին տրամադրել նոր կամ ընդլայնված գործառույթներ) ժառանգված մայր դասից: Ենթադասը չի կարող Java-ում ընդլայնել բազմաթիվ սուպեր դասեր: Հետևաբար, դուք չեք կարող օգտագործել երկարաձգումներ բազմակի ժառանգության համար: Բազմաթիվ ժառանգություն ունենալու համար դուք պետք է օգտագործեք միջերեսներ, ինչպես բացատրված է ստորև:

Իրականացում

Implements հիմնաբառը Java ծրագրավորման լեզվում օգտագործվում է դասի կողմից ինտերֆեյսի իրականացման համար: Java-ում ինտերֆեյսը վերացական տեսակ է, որն օգտագործվում է պայմանագիր նշելու համար, որը պետք է իրականացվի դասերի կողմից, որոնք իրականացնում են այդ ինտերֆեյսը:Սովորաբար ինտերֆեյսը պարունակում է միայն մեթոդի ստորագրություններ և մշտական հայտարարություններ: Ցանկացած ինտերֆեյս, որն իրականացնում է որոշակի ինտերֆեյս, պետք է իրականացնի ինտերֆեյսի մեջ սահմանված բոլոր մեթոդները կամ պետք է հայտարարվի որպես վերացական դաս: Java-ում օբյեկտի հղման տեսակը կարող է սահմանվել որպես ինտերֆեյսի տեսակ: Բայց այդ օբյեկտը կամ պետք է զրոյական լինի, կամ պետք է ունենա դասի օբյեկտ, որն իրականացնում է տվյալ ինտերֆեյսը: Օգտագործելով Implements հիմնաբառը Java-ում, դուք կարող եք մի քանի ինտերֆեյսներ կիրառել մեկ դասի համար: Ինտերֆեյսը չի կարող իրականացնել այլ ինտերֆեյս: Այնուամենայնիվ, ինտերֆեյսը կարող է ընդլայնել դասը:

Տարբերությունը ներդրման և ընդարձակման միջև

Չնայած, Implements-ը և Extends-ը երկու հիմնաբառեր են, որոնք ապահովում են Java ծրագրավորման լեզվով դասի հատկանիշները և վարքագիծը ժառանգելու մեխանիզմ, դրանք օգտագործվում են երկու տարբեր նպատակների համար: Implements հիմնաբառը օգտագործվում է դասի համար՝ որոշակի ինտերֆեյս իրականացնելու համար, մինչդեռ Extends հիմնաբառը օգտագործվում է ենթադասերի համար, որոնք տարածվում են գերդասից:Երբ դասը իրականացնում է ինտերֆեյս, այդ դասը պետք է իրականացնի ինտերֆեյսի մեջ սահմանված բոլոր մեթոդները, բայց երբ ենթադասը ընդլայնում է գերծանրքաշային դասը, այն կարող է կամ չանտեսել մայր դասում ներառված մեթոդները։ Վերջապես, Implements-ի և Extends-ի ևս մեկ հիմնական տարբերությունն այն է, որ դասը կարող է իրականացնել մի քանի ինտերֆեյս, բայց այն կարող է տարածվել Java-ում միայն մեկ սուպեր դասից: Ընդհանուր առմամբ, Implements-ի (ինտերֆեյսների) օգտագործումը համարվում է ավելի բարենպաստ՝ համեմատած Extends-ի (ժառանգության) օգտագործման հետ՝ մի քանի պատճառներով, ինչպիսիք են ավելի բարձր ճկունությունը և զուգավորումը նվազագույնի հասցնելու ունակությունը: Հետևաբար, գործնականում ինտերֆեյսի ծրագրավորումը գերադասելի է, քան բազային դասերից ընդլայնելը:

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