khaled0mohammed نشر 10 يناير 2022 أرسل تقرير نشر 10 يناير 2022 لماذا لا يتم دعم الوراثة المتعددة في جافا وكان مدعوم في لغة c++ 2 اقتباس
1 qusayabomal3aqa نشر 10 يناير 2022 أرسل تقرير نشر 10 يناير 2022 لتقليل التعقيد وتبسيط اللغة ، لا يتم دعم الوراثة المتعددة في جافا. ضع في اعتبارك سيناريو حيث A و B و C عبارة عن ثلاث فئات. ترث الفئة C الفئتين A و B. إذا كان للفئات A و B نفس الدوال وقمت باستدعائها من كائن فئة فرعية ، فسيكون هناك غموض لاستدعاء طريقة الفئة A أو B. انظر الى هذا المثال وهو مثال خاطئ في لغة جافا class A{ void msg(){ System.out.println("Hello"); } } class B{ void msg(){ System.out.println("Welcome"); } } class C extends A,B{ public static void main(String args[]){ C obj=new C(); obj.msg(); // هنا سيتم استدعاء الدالة من اي صنف ؟ } } وهنا يحدث خطأ Compile Time Error نظرًا لأن أخطاء وقت الترجمة أفضل من أخطاء وقت التشغيل ، فإن Java تعرض خطأ وقت الترجمة إذا ورثت فئتين. لذلك سواء كان لديك نفس الطريقة أو مختلفة ، سيكون هناك خطأ في وقت التجميع. 1 اقتباس
0 Hassan Hedr نشر 10 يناير 2022 أرسل تقرير نشر 10 يناير 2022 بسبب ما يدعى بمشكلة الألماسة، بفرض أن الصنفين B و C يرثان من A، وكل من B و C قاما بتحميل override تابع موروث من A، حين يقوم الصنف D بالوراثة من كلا الصنفين السابقين أي من نسختي التابع سيرث هل التي في C أم في B لذلك في جافا الحل كان بمنع الوراثة المتعددة، بينما هناك لغات أخرى تتضمن حلًا لتلك المشكلة مثل ++C و LISP. 1 اقتباس
السؤال
khaled0mohammed
لماذا لا يتم دعم الوراثة المتعددة في جافا وكان مدعوم في لغة c++
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.