لا تدعم Java الوراثة المتعددة للفئات، ولا تتحايل الطرق القياسية على هذا التقييد، حيث يمكن للفئات الحفاظ على الحالة (مع متغيرات الحالة)، لكن الواجهات لا تستطيع ذلك.
توفر الطرق الافتراضية شكلاً محدودًا من الوراثة المتعددة للسلوك، مما يسمح للفصل بوراثة السلوكيات من واجهات متعددة باستخدام الطرق الافتراضية.
يمكن أن تحدث التعارضات عندما يكون لواجهتين يتم تنفيذهما بواسطة فئة ما نفس الطريقة الافتراضية، كما هو الحال في الواجهتين Alpha وBeta، وكلاهما باستخدام طريقة التعيين ().
قواعد حل النزاعات:
1 يأخذ تنفيذ الفصل الأولوية على تنفيذ الواجهة الافتراضية.
2 إذا كانت هناك واجهتان لهما نفس الطريقة الافتراضية ولم يتجاوز الفصل الطريقة، فسيحدث خطأ.
3 إذا ورثت إحدى الواجهات الأخرى وحدد كلاهما نفس الطريقة الافتراضية، فإن إصدار الواجهة الموروثة يكون له الأولوية.
للإشارة بوضوح إلى التنفيذ القياسي للواجهة، يمكنك استخدام بناء الجملة: NameInterface.super.NameMethod().
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3