الوراثة جافا
وراثة جافا (فئة فرعية وفئة عليا)
في Java ، من الممكن أن ترث السمات والطرق من فئة إلى أخرى. نقوم بتجميع "مفهوم الميراث" في فئتين:
- الفئة الفرعية (الطفل) - الفئة التي ترث من فئة أخرى
- الطبقة الفائقة (الأصل) - الطبقة الموروثة منها
لترث من فصل دراسي ، استخدم extends
الكلمة الأساسية.
في المثال أدناه ، Car
ترث الفئة (فئة فرعية) السمات والطرق من Vehicle
الفئة (الطبقة الفائقة):
مثال
class Vehicle {
protected String brand = "Ford"; // Vehicle attribute
public void honk() { // Vehicle method
System.out.println("Tuut, tuut!");
}
}
class Car extends Vehicle {
private String modelName = "Mustang"; // Car attribute
public static void main(String[] args) {
// Create a myCar object
Car myCar = new Car();
// Call the honk() method (from the Vehicle class) on the myCar object
myCar.honk();
// Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
System.out.println(myCar.brand + " " + myCar.modelName);
}
}
هل لاحظت protected
المعدل في السيارة؟
قمنا بتعيين سمة العلامة التجارية في السيارة لمعدِّل protected
وصول . إذا تم الضبط على private
، فلن تتمكن فئة السيارة من الوصول إليها.
لماذا ومتى تستخدم "الميراث"؟
- إنها مفيدة لإعادة استخدام الكود: إعادة استخدام سمات وطرق فئة موجودة عند إنشاء فئة جديدة.
نصيحة: ألق نظرة أيضًا على الفصل التالي ، تعدد الأشكال ، والذي يستخدم طرقًا موروثة لأداء مهام مختلفة.
الكلمة النهائية
إذا كنت لا تريد أن ترث الفئات الأخرى من فصل دراسي ، فاستخدم final
الكلمة الأساسية:
إذا حاولت الوصول إلى final
فصل دراسي ، فسيقوم Java بإنشاء خطأ:
final class Vehicle {
...
}
class Car extends Vehicle {
...
}
سيكون الإخراج شيئًا كالتالي:
Main.java:9: error: cannot inherit from final Vehicle
class Main extends
Vehicle {
^
1 error)