السلام عليكم شباب
مالفرق بين الوراثه والاستدعاء
مثلا لما ارث كلاس من كلاس اخر
ولما استدعي كلاس جو كلاس اخر
ايه الفرق
اتمني وضحت السؤال
الوراثة، هي تمرير خواص و (طرق | أفعال) و دوال من الصنف الأب للابن، مثل الوراثة الحقيقية، يرث الابن صفات مثل لون العيون..
الاستدعاء، هو تعريف غرض من صنف من نوع ما لنفرض X ضمن صنف آخر Y واستدعاء الخواص و الدوال منه.
مثال شامل:
لدينا مثال عن صنف يعبر عن مركبات لشركة ما، سيكون اسم الشركة مشترك بين كل المركبات، لكن سوف تختلف باسم الموديل.
ليكن لدينا الصنف Vehicle والذي يعبر عن مركبة ما مهما كان نوعها (سيارة - شاحنة - دراجة) .. و قمنا بتعريف خاصية فيها ولتكن brand أي اسم الماركة للشركة المصنّعة ويحوي دالة مشتركة (سوف نعتبر هذا الصنف هو الأب لجميع المركبات في الشركة و سنعمل وراثة منه).
قمنا بتعريف الصنف Car والذي يرث الصنف Vehicle باستخدام الكلمة المفتاحية extends (سوف يرث الخاصية brand و الدالة التابعة print_brand) من Vehicle .
وضمن الصنف Car قمنا أيضا بتعريف خاصية خاصة بهذا الصنف modelName للدلالة على الموديل (هذه الخاصية ليست موجودة بالأب).
مثال الاستدعاء، هو تعريف غرض myVehicle من الصنف Vehicle ضمن الصنف Car واستدعاء خواصة و دواله.
class Vehicle {
String brand = "Ford";
public void details() {
System.out.println(brand + ", 2005");
}
}
class Car extends Vehicle {
String modelName = "Mustang";
public static void main(String[] args) {
Car myCar = new Car();
Vehicle myVehicle = new Vehicle();
myVehicle.brand = "BMW";
myVehicle.details();
myCar.details();
System.out.println(myCar.brand + " " + myCar.modelName);
System.out.println(myVehicle.brand);
}
}
التعليقات