جافا:الوصول إلى معدل أكثر تقييدا من 'المحمية', أقل تقييدا من 'خاصة'?

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

سؤال

أريد شيئا من هذا القبيل protected, حيث فقط الفئة التي تطبق protected مجال و أي شيء فرعية يمكن الوصول إليه.

لذلك أريد أن تكون قادرة على بتعريف متغير في القاعدة الفئة private, ولكن لا يزال قادرا على الوصول إليه من فئة فرعية.

ولعل هذا هو ضد طبيعة subclassing, private, و/أو protected.

لا شيء من هذا القبيل موجودة في جافا ؟

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

المحلول

هناك فقط أربعة مستويات الوصول للحقول في جاوة:

  • private
  • حزمة-خاص (الافتراضي ؛ لا الوصول إلى معدل)
  • protected
  • public

protected سوف تسمح فرعية ، الطبقات الأخرى في نفس الحزمة ، أعضاء في الطبقة نفسها للوصول إلى protected الأعضاء.

الجواب القصير هو لا توجد وسيلة لتحقيق بالضبط ما هو المطلوب.

للحصول على وصف هؤلاء الأربعة الوصول إلى المعدلات ، التحكم في الوصول إلى أعضاء من فئة من جافا الدروس لديه معلومات أكثر تحديدا.

نصائح أخرى

إذا يمكنك التحكم في مصدر برنامج، يمكنك التحكم دائما ما يدخل الحزمة مع baseclass - لو كان وحده في عبوتها، فقط فرعية يمكن الوصول إلى العضو الذي تريد أن تبقي الخاص باستثناء الفئات الفرعية

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

وليس من الممكن. U لا يزال بتعريف المتغيرات كخاص ثم يعلن الأساليب العامة التي تقوم بتعديل المتغيرات في الطبقة المتفوقة. ثم استدعاء الأسلوب العام على المتغير.

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