التمييز بين تعدد الأشكال الديناميكي والثابت في 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