هل يجب أن يكون للطبقة المجردة طريقة مجردة واحدة على الأقل؟

StackOverflow https://stackoverflow.com/questions/2283399

سؤال

هل من الضروري أن يكون لدى فئة مجردة طريقة مجردة واحدة على الأقل؟

هل كانت مفيدة؟

المحلول

موضوع هذا المنشور والجسم يطرح سؤالين مختلفين:

  1. هل يجب أن يكون لديه عضو واحد على الأقل مجردة؟
  2. هل من الضروري أن يكون لديك عضو واحد على الأقل مجردة؟

الجواب على #2 هو بالتأكيد لا.

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

نصائح أخرى

لا، انها ليست ضرورية. ترى هذا في كثير من الأحيان مرة أخرى "طريقة قالب" نمط التصميم ، مثل HttpServlet, ، حيث يتم تحديد كل طريقة بالفعل السلوك الافتراضي وأنت حر في تجاوز واحد (أو أكثر) منها بدلاً من الكل منهم.

في JDK 1.0 ، كان من الضروري بالفعل أن يكون لديك طريقة مجردة واحدة على الأقل في فئة مجردة. تمت إزالة هذا التقييد في JDK 1.1 (1997؟ (أنا قديم)) وإضافة هذه الفصول إلى مكتبة Java ، مثل java.awt.event.KeyAdapter.

في C ++ ، تحتاج إلى وظيفة افتراضية خالصة واحدة على الأقل لجعل الفئة الفرعية ضرورية ، ودالة افتراضية واحدة على الأقل لإضافة RTTI إلى الفصل. عادة ما يكون من المنطقي استخدام المدمر.

ملاحظة عند تجاوز الأساليب غير المتجبل ، باستخدام @Override فكرة جيدة. لا يخبر القارئ معلومات مهمة حول ما يحاول الكود فعله فحسب ، بل إنه يرتكب أيضًا أخطاء شائعة حيث تمنع الأخطاء المطبعية أو أنواع المعلمات غير الصحيحة التجاوز.

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

إذا كان لدى الفصل abstract المعدل على إعلانه يصبح abstract صف دراسي.

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