"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يختلف تجاوز الطريقة والتحميل الزائد للطريقة في Java؟

كيف يختلف تجاوز الطريقة والتحميل الزائد للطريقة في Java؟

تم النشر بتاريخ 2024-11-21
تصفح:715

How do Method Overriding and Method Overloading Differ in Java?

التمييز بين تعدد الأشكال الديناميكي والثابت في Java

يعد فهم الفرق بين تعدد الأشكال الديناميكي والثابت أمرًا بالغ الأهمية في البرمجة الموجهة للكائنات باستخدام Java. ستوفر هذه المقالة شرحًا مبسطًا ومثالًا لتوضيح هذا المفهوم.

الديناميكي مقابل تعدد الأشكال الثابت

يسمح تعدد الأشكال لاسم أسلوب واحد بأن يكون له تطبيقات متعددة اعتمادًا على نوع الكائن الذي يطلق عليه. هناك نوعان أساسيان من تعدد الأشكال:

  • تعدد الأشكال الديناميكي (ربط وقت التشغيل): يتم حل استدعاءات الأسلوب في وقت التشغيل بناءً على فئة الكائن الفعلي. يحدث مع تجاوز الطريقة في الفئات الفرعية ويعرف أيضًا باسم الربط المتأخر.
  • تعدد الأشكال الثابت (ربط وقت الترجمة): يتم حل استدعاءات الطريقة في وقت الترجمة بناءً على النوع المعلن من المتغير المرجعي يحدث مع التحميل الزائد للطريقة في نفس الفئة ويعرف أيضًا باسم الربط المبكر.
  • التحميل الزائد للطريقة

التحميل الزائد للطريقة هو شكل من أشكال تعدد الأشكال الثابتة حيث تكون متعددة الأساليب التي تحمل نفس الاسم موجودة في نفس الفئة ولكنها تختلف في معلماتها. عند استدعاء طريقة محمّلة بشكل زائد، تحدد Java الطريقة المناسبة لاستدعاءها استنادًا إلى عدد وأنواع الوسائط التي تم تمريرها.

مثال الكود (طريقة التحميل الزائد):

] &&&]حساب الفئة { مجموع باطلة(int a, int b) { System.out.println(a b); } مجموع باطلة(int a, int b, int c) { System.out.println(a b c); } public static void main(String[] args) { كائن الحساب = حساب جديد ()؛ obj.sum(10, 10, 10); // الإخراج: 30 obj.sum(20, 20); // الإخراج: 40 }

class Calculation {
  void sum(int a, int b) { System.out.println(a   b); }
  void sum(int a, int b, int c) { System.out.println(a   b   c); }

  public static void main(String[] args) {
    Calculation obj = new Calculation();
    obj.sum(10, 10, 10); // Output: 30
    obj.sum(20, 20); // Output: 40
  }
}

تجاوز الطريقة هو شكل من أشكال تعدد الأشكال الديناميكي حيث يتم الإعلان عن الأساليب التي لها نفس الاسم والتوقيع في فئات مختلفة ولكنها تشترك في فئة أصل مشتركة. عند استدعاء طريقة متجاوزة، تحدد Java الطريقة التي سيتم استدعاؤها استنادًا إلى فئة الكائن الفعلية في وقت التشغيل.

مثال التعليمات البرمجية (تجاوز الطريقة):

فئة حيوان { نقل الفراغ العام () { System.out.println("الحيوانات يمكنها التحرك"); } } فئة الكلب تمتد إلى الحيوان { نقل الفراغ العام () { System.out.println("الكلاب يمكنها المشي والجري"); } } الطبقة العامة TestDog ​​{ public static void main(String[] args) { الحيوان أ = حيوان جديد ()؛ // مرجع الحيوان والكائن الحيوان ب = كلب جديد ()؛ // مرجع حيواني لكن كائن كلب a.move(); // الإخراج: يمكن للحيوانات التحرك b.move(); // الإخراج: يمكن للكلاب المشي والجري }

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3