أولاً ، دعنا نلقي نظرة على التعريف الموجز للتحميل الزائد ، والكتابة فوق (إعادة الكتابة):
Method Overload: إذا كانت طريقتان لها نفس اسم الطريقة ولكن المعلمات غير متناسقة ، فإن إحدى الطرق هي الحمل الزائد للطريقة الأخرى.
تجاوز الطريقة: إذا تم تعريف طريقة في الفئة الفرعية ، فإن اسمها ونوع الإرجاع وتوقيع المعلمة يتطابق مع الاسم ونوع الإرجاع وتوقيع المعلمة للطريقة في الفئة الأصل ، ثم يمكن القول أن طريقة الفئة الفرعية تغطي أساليب فئة الوالدين
دعونا نركز على مشكلة التغطية ، مع أخذ الكود التالي كمثال:
الفئة العامة الناس {public string getName () {return "people" ؛ New People () ؛ النتيجة هي الطالب PP = New Student () ؛توضح النتيجة أعلاه أن طريقة getName لفئة الطالب نجحت في الكتابة فوق طريقة فئة الوالدين
دعونا نلقي نظرة على تراكب المتغيرات:
يمتد اسم الفئة العامة {اسم "People" ؛ Out .println (p.name) ؛ System.out .println (pp.name) ؛ // نتيجة التشغيل هي الأشخاص}من خلال تشغيل النتائج ، وجدت أن تراكب المتغيرات يختلف في الواقع عن الطريقة.
بكلماتي الخاصة: لا يمكن اعتبار تغطية المتغيرات إلا تغطية نصف مخبوزة على الأكثر.
خلاف ذلك ، لن يحدث التحول في حالة فقدان البيانات
People Pp = New Student () ؛
في تجربتي الشخصية: تغطية المتغيرات سهلة ارتكاب أخطاء. يجعل الناس يشعرون أنهم يعودون إلى ميراث C ++ [هذا ليس ميراث C ++ مع افتراضي]
أخيرًا ، دعونا نلقي نظرة على قطعة أخرى من الكود:
الفئة العامة {name people "؛ String [] args) {people p = new People () ؛ getName :::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::: :::::::::::::::::::::: :::::::::::::::::::: .println (pp.getName ()) ؛ // نتيجة التشغيل هي الطالب}من الواضح أن هذه التغطية هي التغطية الأكثر فائدة بالنسبة لنا ، لأنه بهذه الطريقة ، يمكننا تحقيق الغرض من تجريد الكائنات الخرسانية في كائنات عامة ، وتعدد الأشكال الحقيقية.
ما سبق هو رأيي الشخصي فقط.