التحميل الزائد: وظائف متعددة بنفس الاسم ولكن بنفس اسم الطريقة ولكن بمعلمات مختلفة
ملاحظة: 1. المعلمات المختلفة تعني أن هناك اختلافًا واحدًا على الأقل في نوع المعلمة وعدد المعلمات وترتيب المعلمات.
2. لا يمكن استخدام قيم الإرجاع والاستثناءات ومعدلات الوصول كشروط للتحميل الزائد (لأنه بالنسبة للمكالمات المجهولة، سيحدث الغموض، على سبيل المثال: void a () وint a()، إذا تم استدعاء a()، سيحدث الغموض)
3. يمكن أيضًا تحميل الطريقة الرئيسية بشكل زائد
التجاوز: تعيد الفئة الفرعية كتابة طريقة الفئة الأصلية، وتتطلب أن يكون اسم الطريقة ونوع المعلمة متماثلين تمامًا (لا يمكن أن تكون المعلمات فئات فرعية)، وأن تكون قيمة الإرجاع والاستثناء أصغر أو متطابقة مع تلك الخاصة بالفئة الأصلية (ذلك أي أنها فئات فرعية من الفئة الأصلية)، ومعدلات الوصول أصغر من تلك الخاصة بالفئة الأصلية، والفئة الأصلية أكبر أو متماثلة
اثنان متماثلان، اثنان صغيران وواحد كبير
ملاحظة: لا يمكن لأساليب مثيل الفئة الفرعية تجاوز الأساليب الثابتة للفئة الفرعية؛ ولا يمكن للطرق الثابتة للفئة الفرعية تجاوز أساليب مثيل الفئة الأصلية (يحدث خطأ أثناء الترجمة).
مخفي: عندما يكون للفئة الأصلية والفئة الفرعية سمات أو أساليب بنفس الاسم، فإن سمة أو طريقة الفئة الأصلية التي تحمل نفس الاسم مفقودة في النموذج، ولكنها في الواقع لا تزال موجودة.
ملاحظة: عند حدوث الإخفاء، أيًا كان نوع التصريح عن الفئة، سيتم استدعاء خصائص أو أساليب الفئة المقابلة، ولن يحدث الربط الديناميكي.
هناك شكل واحد فقط من أشكال إخفاء الطريقة، أي أن نفس الطريقة الثابتة موجودة في الفئة الأصلية والفئة الفرعية
يمكن إخفاء الخصائص فقط، وليس الكتابة فوقها
يمكن لمتغيرات مثيل الفئة الفرعية/المتغيرات الثابتة إخفاء متغيرات المثيل/الثابت للفئة الأصلية. باختصار، يمكن إخفاء المتغيرات بشكل متقاطع.
الفرق بين الإخفاء والتغطية:
السمات المخفية، بعد إجبار الفئة الفرعية على الانضمام إلى الفئة الأصلية، يتم الوصول إلى السمات الموجودة في الفئة الأصلية.
الطريقة التي تم تجاوزها، بعد أن يتم تحويل الفئة الفرعية إلى الفئة الأصل، لا تزال تستدعي طريقة الفئة الفرعية نفسها.
نظرًا لأن التغطية مرتبطة ديناميكيًا وتخضع لـ RTTI (تحديد نوع وقت التشغيل وفحص نوع وقت التشغيل)، فإن الإخفاء لا يخضع لـ RTTI باختصار، RTTI مخصص للتغطية فقط، وليس للإخفاء.
ظروف خاصة:
1. يمكن إخفاء الخصائص المعدلة بواسطة Final، لكن لا يمكن تعيينها، أي أنه لا يمكن تعيينها باستخدام =. ويقال عبر الإنترنت أنه لا يمكن تعديل الخصائص النهائية، لأنه بعد متغير النوع المرجعي تم تعديله باستخدام Final، ولا يمكن تعديله إلى كائنات أخرى، ولكن يمكن اختباره باستخدام ArrayList. يمكن تهيئة السمة النهائية في وقت التشغيل، ولكن يجب أن يظهر بيان التهيئة.
2. لا يمكن تجاوز الطرق المعدلة النهائية ويمكن تحميلها بشكل زائد
3. لا يمكن وراثة الفئات المعدلة النهائية
4. الطريقة الخاصة تضيف ضمنيًا النهاية