تخطَّ إلى المحتوى

extends

الوراثة extends

extends تجعل صنفًا يرث خصائص وسلوك صنف آخر — إعادة استخدام الكود وتجميع الأصناف المتقاربة.

الوراثة تُنشئ صنفًا مشتقًا (subclass) من صنف أساس (superclass). يرث المشتق كل الأعضاء العامة والحماية (وليس الخاصة) من الأصل. يمكنه إضافة أعضاء جديدة أو إعادة تعريف الدوال الافتراضية بـ override.

الصياغة

public class Child extends Parent {
    // أعضاء إضافية
    // إعادة تعريف الدوال بـ @Override
}

📄 مثال

class Animal {
    String name;
    void speak() {
        System.out.println(name + " يصدر صوتًا");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println(name + " ينبح!");
    }

    @Override
    void speak() {
        System.out.println(name + " ينبح بصوت عالي");
    }
}

Dog d = new Dog();
d.name = "ترير";
d.speak(); // ترير ينبح بصوت عالي

أهم النقاط

العنصرالوظيفة
extends Parentيرث الصنف من الأصل — وراثة لصنف واحد فقط في Java
super()استدعاء الباني الأصل في الباني المشتق
@Overrideيؤكد إعادة تعريف صحيحة لدالة الأصل
protectedأعضاء يمكن الوصول لها من الأصل والمشتق فقط

💡 نصائح عملية

  • استخدم @Override دائمًا عند إعادة تعريف — يكشف أخطاء التوقيع وقت الترجمة
  • لا تُفرط في طبقات الوراثة — 2-3 مستويات كحد أقصى

⚠️ أخطاء شائعة

  • nxing protected بالخطأ — protected تعني الوراثة فقط (أو نفس الباقة في Java)
  • nxing super() في الباني المشتق — يجب أن تكون أول سطر

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.