الفرق بين الحمولة الزائدة والميراث والتجاوز وتعدد الأشكال:
1) الميراث هو عندما تحصل فئة فرعية على أعضاء الفئة الأم.
2) التجاوز هو وسيلة لإعادة تنفيذ الطبقة الأصلية بعد الميراث.
3) التحميل الزائد عبارة عن سلسلة من الأساليب بمعلمات مختلفة ونفس الاسم في الفصل.
4) تعدد الأشكال هو تجنب عدد كبير من التحميل الزائد في الفصل الأصلي، مما سيؤدي إلى تضخم الكود وصعوبة صيانته.
بيان مثير للاهتمام رأيته على الإنترنت هو: الميراث هو طريقة لفئة فرعية لاستخدام فئة أصل، في حين أن تعدد الأشكال هو طريقة لفئة أصل لاستخدام فئة فرعية.
تتضمن الأمثلة التالية هذه التطبيقات الأربعة:
مثلث الطبقة يمتد الشكل {
كثافة العمليات العامة getSides () {
العودة 3؛
}
}
مستطيل الطبقة يمتد الشكل {
كثافة العمليات العامة getSides(int i) {
العودة أنا؛
}
}
شكل الطبقة العامة {
المنطقية العامة isSharp(){
عودة صحيحة؛
}
كثافة العمليات العامة getSides () {
العودة 0؛
}
public int getSides(Triangle tri){
العودة 3؛
}
public int getSides(مستطيل التسجيل){
العودة 4؛
}
public static void main(String[] args) {
مثلث ثلاثي = مثلث جديد ()؛
System.out.println("هل المثلث من النوع الحاد؟" + tri.isSharp());
شكل الشكل = مثلث جديد ()؛
System.out.println("الشكل الخاص بي يحتوي على" + Shape.getSides() + "جوانب.");
}
}
الأحمر هو التحميل الزائد، والأخضر هو الكتابة فوق، والأزرق هو الميراث، والوردي هو تعدد الأشكال
لاحظ أنه يتم تجاوز أساليب فئة المثلث، بينما يتم تحميل أساليب فئة المستطيل بشكل زائد.
بمقارنة الأجزاء الحمراء والوردية، يمكنك العثور على مزايا تعدد الأشكال على التحميل الزائد: إذا كنت تستخدم التحميل الزائد، فيجب تحميل طريقة الحصول على عدد الحواف في الفئة الأصلية لكل فئة فرعية، إذا كنت تستخدم تعدد الأشكال، ثم الفئة الأصلية يوفر فقط واجهة للحصول على عدد الجوانب، أما بالنسبة للحصول على عدد جوانب الشكل وكيفية الحصول عليه، فيتم تنفيذها (إعادة كتابتها) في الفئات الفرعية على التوالي.