سؤال

لدي القليل من الشك في هذا الخط:

لا يمكن للطبقة المجهولة تحديد مُنشئ

ثم ، لماذا يمكننا أيضًا تحديد فئة مجهولة مع بناء الجملة التالي:

new class-name ( [ argument-list ] ) { class-body }
هل كانت مفيدة؟

المحلول

أنت لا تحدد مُنشئًا في فئة مجهولة ، فأنت تتصل بمنشئ من الفئة الفائقة.

لا يمكنك إضافة مُنشئ مناسب لفئة مجهولة ، ومع ذلك ، يمكنك القيام بشيء مماثل. وهي كتلة التهيئة.

public class SuperClass {
   public SuperClass(String parameter) {
       // this is called when anonymous class is created
   }
}

// an anonymous class is created and instantiated here
new SuperClass(parameterForSuperClassConstructor) {
   {
      // this code is executed when object is initialized
      // and can be used to do many same things as a constructors
   }

   private void someMethod() {

   }

}

نصائح أخرى

مثالك يخلق مجهول الفئة الفرعية من class-name, ، ولا يُسمح لك بإنشاء مُنشئ خاص بفصلك المجهول. قائمة الوسيطة التي تقدمها هي نفس قائمة الوسيطة لـ class-name البناء.

هذا يعني وجود فئة مجردة تسمى class-name مع المنشئ المحدد. أنت تستفيد من هذا المُنشئ في فئتك المجهولة التي تشبه استخدام Super () في مُنشئ الفئة الفرعية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top