0Pricing
Java Academy · درس

extends وsuper

استخدم extends لإعادة استخدام فئة أساسية، وsuper لاستدعاء منشئ الفئة الأب أو دوالها. اجعل الأمثلة صغيرة وسهلة القراءة.

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

ما الوراثة؟

الوراثة تتيح لصنف إعادة استخدام صنف آخر وتوسيعه. يحصل الصنف الابن على حقول وأساليب الصنف الأب، ويمكنه إضافة حقوله وأساليبه الخاصة. استخدمها لمشاركة الشفرة المشتركة بين الأنواع المتشابهة.

استخدام extends

استخدم الكلمة المفتاحية extends لإنشاء صنف فرعي. مثال: class Car extends Vehicle. الصنف الفرعي نوع محدد من الصنف الأب، ويمكنه إعادة استخدام سلوكه.

‏super(...) في المنشئات

داخل منشئ الصنف الابن، تستدعي super(...) منشئ الصنف الأب. يؤدي ذلك إلى تهيئة جزء الصنف الأب أولًا. إذا لم تستدعِه صراحةً، تستدعي Java منشئ الصنف الأب الذي لا يأخذ معلمات افتراضيًا، إذا كان موجودًا.

‏super.method()

يمكنك أيضًا كتابة super.someMethod() لاستخدام نسخة الصنف الأب من الأسلوب. يفيد ذلك عندما يريد الصنف الابن إضافة سلوك إضافي بسيط حول المنطق الأساسي.

متى نستخدمها؟

استخدم الوراثة لعلاقة واضحة من نوع هو: فـ Car هو Vehicle. إذا كنت تريد فقط إعادة استخدام الوظائف من دون وجود علاقة هو، ففضّل التركيب. واجعل شجرات الأصناف ضحلة للمبتدئين.

الشفرة: extends وsuper

الشفرة: يرث Car من Vehicle باستخدام extends. يستدعي المنشئ super لضبط brand. ويستدعي أسلوب الصنف الابن super.printInfo() ثم يضيف سطره الخاص.

public class Main {
  // Base class with a simple constructor and method
  static class Vehicle {
    String brand;
    Vehicle(String brand) {
      this.brand = brand; // parent sets its own field
    }
    void printInfo() {
      System.out.println("Vehicle brand: " + brand);
    }
  }

  // Subclass reuses Vehicle with extends
  static class Car extends Vehicle {
    int doors;
    Car(String brand, int doors) {
      super(brand);    // call parent constructor first
      this.doors = doors;
    }
    void printInfo() {
      // Add extra info, but reuse parent behavior
      super.printInfo(); // call parent method
      System.out.println("Doors: " + doors);
    }
  }

  public static void main(String[] args) {
    // Create a Car (which is a Vehicle)
    Car c = new Car("EcoMotors", 4);
    c.printInfo(); // shows parent info then child info
  }
}

فحص ‏super(...)

فحص سريع: ماذا يفعل استدعاء super(...) داخل منشئ الصنف الفرعي؟

مراجعة

مراجعة: تنشئ extends علاقة من نوع هو؛ وتُهيئ super(...) الصنف الأب، بينما يعيد super.method() استخدام المنطق الأساسي. فضّل التسلسلات الهرمية الضحلة والبسيطة.

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

هل درس «extends وsuper» مجاني؟

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

ماذا ستتعلم في «extends وsuper»؟

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

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

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

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

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

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

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

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

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