يعد تجاوز الطريقة والتحميل الزائد من المظاهر المختلفة لتعدد أشكال Java. التجاوز هو مظهر من مظاهر تعدد الأشكال بين الفئات الأم والفئات الفرعية، في حين أن التحميل الزائد هو مظهر من مظاهر تعدد الأشكال في الفصل.
إذا كانت الطريقة المحددة في فئة فرعية لها نفس الاسم والمعلمات مثل الفئة الأصلية، فإننا نقول أن الطريقة متجاوزة. عندما يستخدم كائن فئة فرعية هذه الطريقة، فإنه سيستدعي التعريف الموجود في الفئة الفرعية، ويبدو أن التعريف الموجود في الفئة الأصلية "محمي".
إذا تم تعريف أساليب متعددة بنفس الاسم في فئة ما، وقد تحتوي على أعداد مختلفة من المعلمات، أو أنواع معلمات مختلفة، أو ترتيبات معلمات مختلفة، فإن ذلك يسمى التحميل الزائد للطريقة. ولا يمكن تحميله بشكل زائد عن طريق أذونات الوصول أو أنواع الإرجاع أو الاستثناءات التي تم طرحها.
1. طريقة التحميل الزائد (التحميل الزائد)
المفهوم: بكل بساطة: التحميل الزائد للطريقة هو طرق تنفيذ متعددة لنفس وظيفة الفئة. تعتمد الطريقة المستخدمة على المعلمات التي يقدمها المتصل.
أشياء يجب ملاحظتها:
(1) أسماء الطرق هي نفسها (2) لا تختلف أنواع المعلمات وعددها وترتيبها في واحدة منها على الأقل (3) يمكن أن تختلف أنواع الإرجاع للطرق (4) معدّلات يمكن أن تكون الأساليب مختلفة، إذا كانت أنواع الإرجاع مختلفة فقط، فلا يمكن أن تشكل إذا كان التحميل الزائد يحتوي فقط على رموز تعديل وصول مختلفة، فلا يمكن أن يشكل تحميلًا زائدًا.
يمكن للطريقة المحملة بشكل زائد تغيير نوع قيمة الإرجاع.
2. تجاوز الطريقة (التجاوز)
المفهوم: ببساطة: تغطية الطريقة تعني أن الفئة الفرعية لها طريقة لها نفس الاسم ونوع الإرجاع والمعلمات كطريقة للفئة الأصلية، ثم نقول إن طريقة الفئة الفرعية تتجاوز طريقة الفئة الأم فصل.
ملحوظة: هناك شروط كثيرة لتغطية الطريقة بشكل عام هناك نقطتان يجب الانتباه إليهما:
(1) يجب أن يكون نوع الإرجاع والمعلمات واسم الطريقة لطريقة الفئة الفرعية مطابقًا تمامًا لنوع الإرجاع والمعلمات واسم الطريقة لطريقة الفئة الأصلية، وإلا سيحدث خطأ في الترجمة.
(2) لا يمكن لطرق الفئة الفرعية تقليل حقوق الوصول لطرق الفئة الأصلية (العكس ممكن)
مثال:
تجاوز المثيل