تعدد الأشكال والربط الديناميكي
افهم تعدد الأشكال: واجهة واحدة وتنفيذات متعددة. تعلّم الربط الديناميكي، حيث يعتمد تنفيذ الدالة على نوع الكائن.
تعدد الأشكال والربط الديناميكي درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
التعريف
تعدد الأشكال يعني أن نوع مرجع واحدًا يمكنه الإشارة إلى كائنات من فئات فرعية مختلفة. عند استدعاء دالة، تُنفَّذ النسخة الصحيحة اعتمادًا على نوع الكائن الفعلي، لا نوع المتغير.
لماذا هو مفيد؟
يتيح لكم ذلك كتابة شيفرة مرنة وقابلة لإعادة الاستخدام. فعلى سبيل المثال، يمكن لـ List من Animal أن تحتوي على كائنات من Dog وCat، ويعمل استدعاء speak() بشكل صحيح مع كل منها. ولا تحتاجون إلى مسارات شيفرة منفصلة.
الربط الديناميكي
الربط الديناميكي يعني أن تحديد جسم الدالة الذي سيُنفَّذ يحدث وقت التشغيل. تنظر JVM إلى نوع الكائن الفعلي، لا إلى النوع المُعلن فقط، عند اختيار الدالة.
استدعاءات متسقة
مع تعدد الأشكال، يمكنكم التعامل مع جميع الفئات الفرعية بالطريقة نفسها. يعمل استدعاء الدالة نفسها على كل كائن، وتختار JVM النسخة الصحيحة. ويؤدي ذلك إلى شيفرة أنظف وأقصر.
مثال من الحياة اليومية
مثال: Shape هي الفئة الأصلية. يعيد كل من Circle وSquare تعريف draw(). تستدعي حلقة تمر على قائمة من Shape الدالة draw() لكل عنصر، فتُنفَّذ النسخة الصحيحة. هذا هو تعدد الأشكال في التطبيق اليومي.
الشيفرة: عرض توضيحي لتعدد الأشكال
الشيفرة: يعيد كل من Dog وCat تعريف speak(). تحتوي مصفوفة من Animal على كائنات مختلفة. ينفذ كل استدعاء النسخة الصحيحة تلقائيًا، موضحًا تعدد الأشكال عمليًا.
public class Main {
static class Animal {
void speak() {
System.out.println("Some animal sound");
}
}
static class Dog extends Animal {
@Override
void speak() {
System.out.println("Woof!");
}
}
static class Cat extends Animal {
@Override
void speak() {
System.out.println("Meow!");
}
}
public static void main(String[] args) {
Animal[] pets = { new Dog(), new Cat(), new Animal() };
for (Animal a : pets) {
a.speak(); // dynamic binding picks correct version
}
}
}
التحقق من تعدد الأشكال
تحقق سريع: ما الذي يتيح لكم تعدد الأشكال فعله في Java؟
مراجعة
مراجعة: تعدد الأشكال = مرجع واحد، وأشكال متعددة. يختار الربط الديناميكي الدالة وقت التشغيل، مما يوفر المرونة وشيفرة نظيفة.
الأسئلة الشائعة
هل درس «تعدد الأشكال والربط الديناميكي» مجاني؟
نعم — نص درس «تعدد الأشكال والربط الديناميكي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «تعدد الأشكال والربط الديناميكي»؟
افهم تعدد الأشكال: واجهة واحدة وتنفيذات متعددة. تعلّم الربط الديناميكي، حيث يعتمد تنفيذ الدالة على نوع الكائن. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «تعدد الأشكال والربط الديناميكي»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- extends وsuper
- تجاوز الدوال
- تعدد الأشكال والربط الديناميكي