ما هي الوراثة؟
صنف يرث حقول ودوال صنف آخر فيعيد استخدامها — علاقة "هو نوع من".
public class Animal {
String name;
void eat() {
System.out.println(name + " يأكل");
}
}
public class Dog extends Animal {
void bark() {
System.out.println(name + " ينبح"); // ورث name
}
}
الاستخدام:
Dog d = new Dog();
d.name = "ريكس";
d.eat(); // ورثها من Animal
d.bark(); // خاصّة بـ Dog
super
تشير للصنف الأب — لاستدعاء مُنشئه أو دواله:
public class Dog extends Animal {
Dog(String name) {
super(); // مُنشئ الأب
this.name = name;
}
void eat() {
super.eat(); // دالة الأب
System.out.println("بشهية!");
}
}
كل صنف يرث Object
في Java كل الأصناف ترث ضمنيًّا من Object (لذا توجد toString() و equals()).
final لمنع الوراثة
public final class Constants { } // لا يمكن أن يرثه أحد
💡 Java لا تدعم الوراثة المتعدّدة للأصناف (لتجنّب التعقيد) — تُحلّ بالواجهات لاحقًا.
🎯 التالي: تعدّد الأشكال (Polymorphism).