كائنات تم إنشاؤها حديثًا. ومع ذلك ، فإن السؤال الذي يطرح نفسه ينشأ: هل من الضروري استدعاء طريقة Super () صراحة داخل مُنشئ الفئة الفرعية؟ ) اتصل ، يستدعي المترجم تلقائيًا مُنشئ NO-ARGS يمكن الوصول إليه في الفئة الفائقة. لا يحتوي هذا المُنشئ على أي معلمات وهو أمر حيوي لتهيئة أعضاء مثيل الطبقة الفائقة بشكل صحيح.
مُنشئ في الطبقة الفائقة مع قائمة وسيطة مطابقة. إذا لم يتم العثور على مُنشئ مطابقة ، يحدث خطأ. وبعبارة أخرى ، يجب أن يكون للمنشئ الذي تم استدعاؤه عبر Super () وسيطات تتطابق تمامًا مع الوسائط التي تم تمريرها إلى مُنشئ الفئة الفرعية.
يجب أن يكون مُنشئ ARGS في الطبقة الفائقة مرئية للكاسورة الفرعية. إذا كان مُنشئ الطبقة الفائقة خاصة أو محمية ، فإن الدعوة الصريحة إلى Super () مع الوسائط المناسبة ضرورية لاستدعاء المُنشئ الصحيح.
أمثلة، ضع في اعتبارك قصاصات الكود التالية:
قاعدة الفئة العامة {// no-args constructor} سيتم استدعاء الفئة العامة المشتقة من القاعدة {// الافتراضية المُنشأة من قبل المترجم} في هذه الحالة ، سيتم استدعاء المُنشئ الافتراضي في القاعدة تلقائيًا عند إنشاء مثيل مشتق.
مشتق (int i) {super (i) ؛ }}
هنا ، يستدعي المنشئ المشتق صراحة المُنشئ المطابق في القاعدة مع الوسيطة i. قاعدة {} // خطأ: لا يوجد مُنشئ لا يمكن الوصول إليه في الفئة الفائقة
ينتج عن هذا الرمز خطأً لأن مُنشئ القاعدة خاص ولا يمكن الوصول إليه من الفئة الفرعية.
يستدعي برنامج التحويل البرمجي تلقائيًا مُنشئ NO-ARGS الذي يمكن الوصول إليه في الفئة الفائقة ، والمكالمات الصريحة Super () ضرورية عندما يكون مُنشئ الفئة الفرعية حججًا أو عندما لا يمكن الوصول إلى مُنشئ الفئة الفائقة. يعد فهم هذه الفروق الدقيقة أمرًا بالغ الأهمية لضمان تهيئة الكائن المناسبة في Java.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3