هل يجب أن يكون للطبقة المجردة طريقة مجردة واحدة على الأقل؟
-
21-09-2019 - |
سؤال
هل من الضروري أن يكون لدى فئة مجردة طريقة مجردة واحدة على الأقل؟
المحلول
موضوع هذا المنشور والجسم يطرح سؤالين مختلفين:
- هل يجب أن يكون لديه عضو واحد على الأقل مجردة؟
- هل من الضروري أن يكون لديك عضو واحد على الأقل مجردة؟
الجواب على #2 هو بالتأكيد لا.
الجواب على رقم 1 شخصي ومسألة أسلوب. شخصيا أود أن أقول نعم. إذا كانت نيتك هي منع فئة (بدون طرق تجريدية) private
protected
مُنشئ ، وليس عن طريق وضع علامة عليه abstract
.
نصائح أخرى
لا، انها ليست ضرورية. ترى هذا في كثير من الأحيان مرة أخرى "طريقة قالب" نمط التصميم ، مثل HttpServlet
, ، حيث يتم تحديد كل طريقة بالفعل السلوك الافتراضي وأنت حر في تجاوز واحد (أو أكثر) منها بدلاً من الكل منهم.
في JDK 1.0 ، كان من الضروري بالفعل أن يكون لديك طريقة مجردة واحدة على الأقل في فئة مجردة. تمت إزالة هذا التقييد في JDK 1.1 (1997؟ (أنا قديم)) وإضافة هذه الفصول إلى مكتبة Java ، مثل java.awt.event.KeyAdapter
.
في C ++ ، تحتاج إلى وظيفة افتراضية خالصة واحدة على الأقل لجعل الفئة الفرعية ضرورية ، ودالة افتراضية واحدة على الأقل لإضافة RTTI إلى الفصل. عادة ما يكون من المنطقي استخدام المدمر.
ملاحظة عند تجاوز الأساليب غير المتجبل ، باستخدام @Override
فكرة جيدة. لا يخبر القارئ معلومات مهمة حول ما يحاول الكود فعله فحسب ، بل إنه يرتكب أيضًا أخطاء شائعة حيث تمنع الأخطاء المطبعية أو أنواع المعلمات غير الصحيحة التجاوز.
لا - يمكنك الإعلان عن ملخص الفصل دون أن يكون لديك أي أساليب مجردة. قد لا يكون له أي معنى من الناحية النظرية لوجود مثيل لتلك الفئة ، أو قد ترغب في التأكد من أنه يمكن إنشاء فئات فرعية فقط من تلك الفئة (لأي سبب من الأسباب)
إذا كان لدى الفصل abstract
المعدل على إعلانه يصبح abstract
صف دراسي.