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

هل تحتاج فئات Java الفرعية دائمًا إلى استدعاء مُنشئ الفئة الفائقة بشكل صريح؟

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

Do Java Subclasses Always Need to Explicitly Call the Superclass Constructor?

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

هل تمت إضافة super() تلقائيًا بواسطة المترجم؟

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

.

أنواع المنشئات

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

استخدام super () بشكل صريح هو فقط مطلوب إذا:

لا تحتوي الفئة الفائقة على مُنشئ يمكن الوصول إليه بدون وسيطات.

    يتضمن مُنشئ الفئة الفرعية معلمات، وفي هذه الحالة يجب أن يستدعي بشكل صريح مُنشئ في الفئة الفائقة التي تقبل تلك المعلمات.
  • مثال 1:

قاعدة الطبقة العامة {} الطبقة العامة المشتقة توسع القاعدة {}

public class Base {}
public class Derived extends Base {}

المثال 2:

قاعدة الطبقة العامة { القاعدة العامة (int i) {} } الطبقة العامة المشتقة تمتد القاعدة { مشتق عام (int i) { سوبر (أنا)؛ // استدعاء مُنشئ Base(int) بشكل صريح }

public class Base {
    public Base(int i) {}
}
public class Derived extends Base {
    public Derived(int i) {
        super(i); // Explicitly call the Base(int) constructor
    }
}
من خلال فهم هذه المفاهيم، يمكنك تجنب استدعاءات super() غير الضرورية والتأكد من تسلسل المنشئ المناسب في الفئات الفرعية الخاصة بك.

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

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

Copyright© 2022 湘ICP备2022001581号-3