Հիմնական տարբերություն – Ժառանգությունն ընդդեմ ինտերֆեյսի Java-ում
Java-ն ծրագրավորման լեզու է, որը մշակվել է Sun Microsystems-ի կողմից: Java-ն կարող է օգտագործվել տարբեր հավելվածներ մշակելու համար։ Այն բազմակողմանի պարադիգմային լեզու է, որն աջակցում է օբյեկտի վրա հիմնված, կառուցվածքային և այլն: Java-ի հիմնական առավելությունն այն է, որ այն աջակցում է Օբյեկտ-կողմնորոշված ծրագրավորմանը (OOP): Ծրագրավորողը կարող է ստեղծել դասեր և օբյեկտներ: OOP-ում չորս սյուներ կան. Դրանք են ժառանգականությունը, պոլիմորֆիզմը, աբստրակցիան և ինկապսուլյացիան։ Ժառանգությունը և միջերեսները կապված են OOP-ի հետ: Ժառանգության և ինտերֆեյսի հիմնական տարբերությունն այն է, որ ժառանգությունը գոյություն ունեցող դասերից նոր դասեր ստանալն է, իսկ ինտերֆեյսը վերացական դասերի և բազմակի ժառանգության ներդրումն է:
Ի՞նչ է ժառանգությունը Java-ում:
Ժառանգությունը կարող է հասնել կոդի վերօգտագործելիության: Ժառանգումն օգնում է վերօգտագործել գոյություն ունեցող դասի ատրիբուտներն ու մեթոդները: Հին դասի միջոցով նոր դասի ստացման մեխանիզմը կոչվում է ժառանգություն: Հին դասը հայտնի է որպես ծնող դաս կամ սուպեր դաս: Ստացված դասը կոչվում է երեխա դաս կամ ենթադաս:
Java ժառանգության շարահյուսությունը հետևյալն է.
class subclass_name ընդլայնում է superclass_name {
փոփոխական հռչակագիր;
մեթոդի հռչակագիր;
}
Ժառանգության հայեցակարգը կարելի է բացատրել հետևյալ օրինակով: Ենթադրենք, որ կա A կոչվող դաս հետևյալ կերպ։
հանրային դաս A{
public void sum(){
System.out.println(«Sum»);
}
}
Եթե ցանկանում ենք ավելացնել նոր մեթոդ՝ առանց գոյություն ունեցող դասը փոխելու, կարող ենք դա անել հետևյալ կերպ։
հանրային դաս B{
public void sub(){
System.out.println(«Sub»);
}
}
Ծրագրավորողը կարող է օգտագործել ժառանգությունը A դասի գումարը().
հանրային B դասը ընդլայնում է A դասը{
public void sub(){
System.out.println(«Sub»);
}
}
Հիմնական ֆունկցիայում հնարավոր է ստեղծել B-ի օբյեկտ և զանգահարել sub(), որը պատկանում է B դասին և sum(), որը պատկանում է A դասին, օգտագործելով ժառանգությունը:
public static void main (String args){
B obj=նոր B();
obj.sub();
obj.sum();
}
Գոյություն ունեն ժառանգության տարբեր տեսակներ: Դրանք են՝ մեկ ժառանգություն, բազմակի ժառանգություն, բազմաստիճան ժառանգություն և հիերարխիկ ժառանգություն: Մեկ ժառանգության մեջ կա մեկ հիմնական դաս և մեկ ածանցյալ դաս:Բազմաստիճան ժառանգության մեջ կան երեք դասեր՝ բազային դաս, միջանկյալ դաս և ածանցյալ դաս։ Միջանկյալ դասը ժառանգում է բազային դասից, իսկ ածանցյալ դասը՝ միջանկյալ դասից։ Հիերարխիկ ժառանգության մեջ կա մեկ հիմնական դաս և բազմաթիվ ածանցյալ դասեր: Կա հատուկ տեսակ, որը հայտնի է որպես հիբրիդային ժառանգություն: Դա ժառանգության երկու կամ ավելի տեսակների համակցություն է։
Գծապատկեր 01. Ժառանգություն
Բազմաթիվ ժառանգության մեջ կան բազմաթիվ հիմնական դասեր և մեկ ածանցյալ դաս: Ենթադրենք, որ A և B դասերը հիմնական դասերն են: C դասը ստացված դասն է: Եթե երկու A և B դասերն ունեն նույն մեթոդը, և ծրագրավորողը կանչում է այդ մեթոդը ստացված դասից, դա կառաջացնի երկիմաստության խնդիր։ Երկու դասերի ժառանգումը կարող է առաջացնել կոմպիլյացիայի ժամանակի սխալ:Հետևաբար, Java-ում բազմակի ժառանգությունը չի ապահովվում: Այդ խնդիրը հաղթահարելու համար կարող է օգտագործվել ինտերֆեյս:
Ի՞նչ է ինտերֆեյսը Java-ում:
Աբստրակցիան իրականացման մանրամասները թաքցնելու և օգտագործողին միայն ֆունկցիոնալությունները ցուցադրելու գործընթաց է: Աբստրակցիա կարելի է հասնել Աբստրակտ դասերի կամ միջերեսների միջոցով: Վերացական մեթոդը մեթոդ է առանց իրականացման: Առնվազն մեկ վերացական մեթոդ ունեցող դասը վերացական դաս է: Աբստրակտ դասի օրինակը հետևյալն է.
աբստրակտ դաս A{
abstract void sum();
}
Ենթադրենք, որ կան երկու վերացական դասեր, ինչպիսիք են A և B: A և B-ի վերացական մեթոդներն իրականացնելու համար ստեղծվում է նոր C դաս: Այնուհետև C դասը պետք է ընդլայնի և՛ A, և՛ B., սակայն Java-ում բազմակի ժառանգությունը չի ապահովվում: Հետևաբար, պետք է օգտագործել միջերեսներ: Ինտերֆեյսները կարող են օգտագործվել մեթոդների հայտարարման համար, բայց մեթոդներ սահմանել հնարավոր չէ: Հնարավոր չէ ստեղծել օբյեկտ՝ օգտագործելով միջերեսներ։C դասը պետք է իրականացնի բոլոր մեթոդները A և B միջերեսում:
ինտերֆեյս A{
void sum();
}
ինտերֆեյս B{
void sub();
}
C դասը իրականացնում է A, B{
public void sum(){
System.out.println («Գումարում»);
}
public void sub(){
System.out.println(«Հանում»);
}
}
Այժմ հիմնական ծրագրում հնարավոր է ստեղծել C-ի օբյեկտ և կանչել երկու մեթոդները։
public static void main (String args) {
C obj=նոր C();
obj.sum();
obj.sub();
}
Այսպիսով, միջերեսները կարող են օգտագործվել բազմակի ժառանգություն իրականացնելու համար:
Ինտերֆեյսերի մեկ այլ օգտագործումն այն է, որ այն ապահովում է անվտանգություն: Տե՛ս ստորև բերված կոդը։
ինտերֆեյս A {
անվավեր գումար ();
}
դաս B-ն իրականացնում է A {
public void sum () {
System.out.println («Գումարում»);
}
public void multiply () {
System.out.println(«Բազմապատկում»);
}
}
B-ի օբյեկտ ստեղծելիս կարելի է երկու մեթոդներն էլ անվանել գումար () և բազմապատկել (): Եթե ծրագրավորողը ցանկանում է սահմանափակել՝ օգտագործելով բազմապատկել () ֆունկցիան, ապա դա հնարավոր է հետևյալ կերպ.
public static void main (String args){
A obj=նոր B();
obj.sum();
}
A obj=նոր B(); օբյեկտ կստեղծի. Այն A տիպի է և հիշողությունը հատկացվում է որպես B: Հնարավոր է կանչել sum()-ը, բայց չի կարող կատարել multiply(): Այս սահմանափակումը կատարվում է միջերեսների միջոցով:
Որո՞նք են նմանությունները ժառանգության և ինտերֆեյսի միջև Java-ում:
- Երկու հասկացություններն էլ կապված են օբյեկտի վրա հիմնված ծրագրավորման հետ
- Երկուսն էլ ներկայացնում են IS-A հարաբերությունը:
Ո՞րն է տարբերությունը Java-ում ժառանգության և ինտերֆեյսի միջև:
Ժառանգություն ընդդեմ ինտերֆեյսի Java-ում |
|
Ժառանգությունը OOP հայեցակարգ է՝ գոյություն ունեցող դասերից նոր դասեր ստանալու համար: | Ինտերֆեյսը OOP-ում աբստրակցիա և բազմակի ժառանգություն իրականացնելու մեխանիզմ է: |
Օգտագործում | |
Ժառանգությունը ապահովում է կոդի կրկնակի օգտագործման հնարավորություն: | Ինտերֆեյսները ապահովում են վերացականություն և բազմակի ժառանգություն: |
Ամփոփում – Ժառանգությունն ընդդեմ ինտերֆեյսի Java-ում
Java-ն բազմակողմանի պարադիգմային ծրագրավորման լեզու է, որն աջակցում է օբյեկտի վրա հիմնված ծրագրավորմանը:Ժառանգությունը և ինտերֆեյսները կապված են օբյեկտի վրա հիմնված ծրագրավորման հետ: Ժառանգության և ինտերֆեյսի միջև տարբերությունն այն է, որ ժառանգությունը գոյություն ունեցող դասերից նոր դասեր ստանալն է, իսկ ինտերֆեյսները վերացական դասեր և բազմակի ժառանգություն իրականացնելն է:
Ներբեռնեք ժառանգության ընդդեմ ինտերֆեյսի PDF տարբերակը Java-ում
Դուք կարող եք ներբեռնել այս հոդվածի PDF տարբերակը և օգտագործել այն անցանց նպատակներով՝ ըստ մեջբերումների: Խնդրում ենք ներբեռնել PDF տարբերակը այստեղ Ժառանգության և ինտերֆեյսի միջև տարբերությունը Java-ում