"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل `super()` إلزامي في مُنشئي الفئات الفرعية؟

هل `super()` إلزامي في مُنشئي الفئات الفرعية؟

تم النشر بتاريخ 2024-11-08
تصفح:776

Is `super()` Mandatory in Subclass Constructors?

فهم ضرورة super() في منشئي الفئات الفرعية

عند إنشاء فئات فرعية في Java، يطرح السؤال حول ما إذا كان super() استدعاء الأسلوب إلزامي في مُنشئ الفئة الفرعية. تتعمق هذه المقالة في هذا الموضوع، وتوضح الجوانب التالية:

الإدراج التلقائي لـ super() بواسطة المترجم

الإجابة المختصرة على هذا السؤال هي لا. لا يقوم المترجم تلقائيًا بإدراج استدعاء super() في مُنشئ الفئة الفرعية إذا لم يتم ذكر ذلك صراحةً. وبالتالي، يجب أن يحدد مُنشئ الفئة الفرعية دائمًا مُنشئ الفئة الفائقة الذي ينوي استدعاءه.

عدم وجود مكافئات منشئ No-Args

من المهم أن نفهم أن عدم وضع لا يعني استدعاء super() في مُنشئ الفئة الفرعية أن المترجم سيقوم بإدراج مُنشئ مكافئ بدون وسائط. إذا لم يكن لدى الفئة الفائقة مُنشئ بدون وسيطات يمكن الوصول إليه، فإن حذف استدعاء super() سيؤدي إلى خطأ في الترجمة.

استدعاء المنشئ عند وجود الوسيطات

النظر في منشئ فئة فرعية مع الحجج. في هذه الحالة، مطلوب استدعاء super() لتحديد مُنشئ الفئة الفائقة الذي سيتم استدعاؤه. يتم تحديد مُنشئ الفئة الفائقة الذي تم استدعاؤه بشكل أساسي من خلال الوسائط الفعلية التي تم تمريرها إلى مُنشئ الفئة الفرعية. إذا لم يتم تحديد قائمة وسائط في استدعاء super()، فسيتم استدعاء مُنشئ الفئة الفائقة الذي يطابق ترتيب وأنواع وسيطات بناء الفئة الفرعية.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3