Video: Ինչու՞ բազմակի ժառանգությունն ապահովվում է C++-ում, բայց ոչ Java-ում:
2024 Հեղինակ: Lynn Donovan | [email protected]. Վերջին փոփոխված: 2023-12-15 23:48
C++ , Common lisp և մի քանի այլ լեզուներ աջակցում է բազմակի ժառանգությանը մինչդեռ java չի անում աջակցություն այն. Java թույլ չի տալիս բազմակի ժառանգություն խուսափել դրա հետեւանքով առաջացած երկիմաստությունից։ Նման խնդրի օրինակներից մեկը ադամանդի խնդիրն է, որը տեղի է ունենում Հայաստանում բազմակի ժառանգություն.
Ըստ այդմ, ինչու բազմակի ժառանգությունը չի աջակցվում Java-ում:
Java աջակցում է բազմակի ժառանգություն միայն միջերեսների միջոցով: Դասը կարող է իրականացնել ցանկացած թվով ինտերֆեյս, բայց կարող է ընդլայնել միայն մեկ դաս: Բազմաթիվ ժառանգություն է ոչ աջակցվում է, քանի որ դա հանգեցնում է մահացու ադամանդի խնդրի: Դուք ինտերֆեյսից որևէ ֆունկցիոնալություն մի ձեռք բերեք:
Բացի այդ, ո՞րն է ադամանդի խնդիրը բազմակի ժառանգության մեջ: « ադամանդի խնդիր », երկիմաստություն է, որը կարող է առաջանալ թույլ տալու հետևանքով բազմակի ժառանգություն . Դա լուրջ բան է խնդիր լեզուների համար (օրինակ՝ C++), որոնք թույլ են տալիս բազմակի ժառանգություն պետության։ Java-ում, սակայն, բազմակի ժառանգություն թույլատրված չէ դասերի համար, միայն միջերեսների համար, և դրանք չեն պարունակում վիճակ:
Նմանապես, մարդիկ հարցնում են, թե ինչու է C++-ն աջակցում բազմակի ժառանգությանը, իսկ C#-ը՝ ոչ:
Բազմաթիվ ժառանգություն մեջ C# C#-ը չի աջակցում բազմակի ժառանգությանը , քանի որ պատճառաբանել են, որ ավելացնելով բազմակի ժառանգություն ավելացրեց չափազանց մեծ բարդություն C# միևնույն ժամանակ տրամադրելով չափազանց փոքր օգուտ: Մեջ C# , պարապմունքներին թույլատրվում է միայն ժառանգել միայնակ ծնող դասից, որը կոչվում է միայնակ Ժառանգություն.
Ինչպե՞ս է C++-ն աջակցում բազմակի ժառանգությանը:
Ի տարբերություն շատ այլ օբյեկտ-կողմնորոշված ծրագրավորման լեզուների, C++ թույլ է տալիս բազմակի ժառանգություն . Բազմաթիվ ժառանգություն թույլ է տալիս երեխայի դասին ժառանգել մեկից ավելի ծնող դասերից: Կենդանիների և սողունների դասերը ժառանգել դրանից. Միայն Animal դասը վերացնում է breathe() մեթոդը: