0Pricing
Java Academy · درس

تجاوز الدوال

تعلّم كيفية إعادة تعريف الفئات الفرعية لدوال الفئة الأب لتغيير السلوك أو توسيعه.

تجاوز الدوال درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.

التعريف

تعني إعادة تعريف الأسلوب إعادة تعريف أسلوب للصنف الأب داخل صنف فرعي. يكون للأسلوب الاسم والمعلمات ونوع الإرجاع نفسه، لكن جسمًا جديدًا. يتيح ذلك لكل صنف فرعي تقديم سلوك محدد.

لماذا نعيد التعريف؟

تتيح إعادة التعريف تخصيص السلوك. فمثلًا، كل من Dog وCat من نوع Animals، لكن لكل منهما صوت مختلف. وبدل كتابة أسماء أساليب جديدة، يعيد كل منهما تعريف الأسلوب نفسه لضمان استخدام متسق.

قواعد إعادة تعريف الأساليب

القواعد: يجب أن يطابق توقيع الأسلوب توقيع الأسلوب الأصلي تمامًا، ويجب أن يكون نوع الإرجاع متوافقًا، ولا يمكن أن يكون مستوى الوصول أكثر تقييدًا. استخدم التعليمة التوضيحية @Override لاكتشاف الأخطاء أثناء الترجمة.

استخدام super.method()

يمكنكم استدعاء دالة الفئة الأصلية باستخدام super.method(). يتيح لكم ذلك توسيع السلوك بدلًا من استبداله بالكامل، ودمج المنطق القديم والجديد في استدعاء واحد.

أخطاء

الأخطاء: يؤدي تغيير أنواع المعاملات إلى التحميل الزائد، لا إلى إعادة تعريف الدالة. وقد يؤدي نسيان @Override إلى إخفاء الأخطاء المطبعية. تجنبوا أيضًا تضييق مستوى الوصول (مثل public → private)، لأن ذلك يسبب أخطاء في الترجمة.

الشيفرة: عرض توضيحي لإعادة تعريف الدوال

الشيفرة: يعيد كل من Dog وCat تعريف speak() الموروثة من Animal. حتى عند الإشارة إليهما على أنهما Animal، تُنفَّذ نسخة الفئة الفرعية، ما يوضح تعدد الأشكال الحقيقي.

public class Main {
  static class Animal {
    void speak() {
      System.out.println("Some generic 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 a1 = new Dog(); // upcast to Animal
    Animal a2 = new Cat();
    a1.speak(); // runs Dog version
    a2.speak(); // runs Cat version
  }
}

التحقق من إعادة تعريف الدوال

تحقق سريع: ما الذي تتيحه إعادة تعريف الدوال للفئة الفرعية؟

مراجعة

مراجعة: تعيد إعادة التعريف تحديد الدوال ذات التوقيع نفسه، مما يتيح للفئات الفرعية تخصيص السلوك. استخدموا @Override واستدعوا super عند الحاجة.

الأسئلة الشائعة

هل درس «تجاوز الدوال» مجاني؟

نعم — نص درس «تجاوز الدوال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.

ماذا ستتعلم في «تجاوز الدوال»؟

تعلّم كيفية إعادة تعريف الفئات الفرعية لدوال الفئة الأب لتغيير السلوك أو توسيعه. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.

كم من الوقت يستغرق درس «تجاوز الدوال»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟

نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. extends وsuper
  2. تجاوز الدوال
  3. تعدد الأشكال والربط الديناميكي
← العودة إلى Java Academy