Latest web development tutorials

الميراث جافا

الميراث هو حجر الزاوية في تكنولوجيا البرمجة جافا وجوه المنحى، لأنه يسمح لخلق مستوى الطبقات الهرمية. ويمكن فهم الإرث ككائن للحصول على خصائص من كائن آخر من هذه العملية.

إذا الفئة الأصل هي فئة فئة B، فئة B والفئة C هي الفئة الأصل، ونحن ندعو أيضا C هو فئة فرعية من A، يورث الفئة C من الفئة (أ). في جاوة، والطبقة الميراث الميراث واحد، وهذا هو، فئة فرعية يمكن أن يكون إلا فئة أصل واحد

اثنين الأكثر شيوعا كلمات الميراث هو يمتد والأدوات.

كل من استخدام الكلمات الرئيسية وتحديد ما إذا كان الكائن كائن آخر IS-A (أ) العلاقة.

باستخدام هذه الكلمات الرئيسية اثنين، يمكننا تحقيق كائن للحصول على خصائص كائن آخر.

ورثت جميع الطبقات جافا من قبل الطبقة java.lang.Object، وبالتالي فإن وجوه الطبقة هو الجد من جميع الطبقات، وفي كائن بالإضافة إلى ذلك، يجب أن يكون جميع الطبقات فئة أصل.

بسبب الإفراط في تمتد يمكن كلمات يعلن يرث فئة من فئة أخرى، الشكل العام كما يلي:

// A.java
public class A {
    private int i;
    protected int j;
 
    public void func() {
 
    }
}
 
// B.java
public class B extends A {
}

ما سبق كود يظهر المتكررة، B يرث من A، B هو فئة فرعية من أ. و A هو فئة فرعية من كائن، هناك قد لا يعلن صراحة.

كما مثيل B فئة فرعية من لديه كل المتغيرات عضو، ولكن لأفراد المتغير B الخاص، ولكن لا يستطيعون الوصول، والتي تضمن التغليف أ.


IS-علاقة

أن IS-A: كائن هو تصنيف كائن آخر.

هنا هو الكلمة تمتد الميراث التنفيذ.

public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

وبناء على المثال أعلاه، البيان التالي هو الصحيح:

  • الطبقة الحيوانية هي الأم فئة فئة الثدييات.
  • الطبقة الحيوانية هي الأم فئة فئة الزواحف.
  • من الثدييات والزواحف الفئة هي فئة فرعية من فئة الحيوان.
  • الطبقة الكلب على حد سواء فئة فرعية من فئة الثدييات هي فئة فرعية من فئة الحيوان.

تحليل IS-علاقة في المثال أعلاه، على النحو التالي:

  • الثدييات IS-A الحيوان
  • الزواحف IS-A الحيوان
  • الكلب هو-A الثدييات

لذلك: الكلب هو الحيوان-A

باستخدام الكلمة يمتد، فرعية ترث كافة الأساليب الفئة الأصل والممتلكات، ولكن لا يمكن استخدام أساليب خاصة (خاصة) والممتلكات.

نحن نستخدم المشغل instanceof يمكن تحديد الثدييات IS-حيوان

أمثلة

public class Dog extends Mammal{

   public static void main(String args[]){

      Animal a = new Animal();
      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
}

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

true
true
true

بعد إدخال يمتد الكلمة، سنلقي نظرة على كيفية استخدام الكلمة الأدوات للإشارة إلى IS-علاقة.

تنفذ الكلمة في حالة واجهة الطبقة الميراث، وهذا الوضع لا يمكن استخدام الكلمة يمتد.

أمثلة

public interface Animal {}

public class Mammal implements Animal{
}

public class Dog extends Mammal{
}

الكلمة instanceof

يمكنك استخدام المشغل instanceof لاختبار ما إذا الثدييات وجوه الكلب هو مثيل الحيوان الطبقة.

interface Animal{}

class Mammal implements Animal{}

public class Dog extends Mammal{
   public static void main(String args[]){

      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
} 

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

true
true
true

HAS-علاقة

HAS-A الانتماء نيابة الصف وأعضائها. وهذا يساعد على إعادة استخدام رمز وتقليل الأخطاء التعليمات البرمجية.

مثال

public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
	private Speed sp;
} 

فان الطبقة والطبقة السرعة هي HAS-علاقة (فان لديه سرعة)، لذلك سوف لا يكون لديك يتم لصق كافة التعليمات البرمجية في الدرجة فان السرعة في الصف، ويمكن إعادة استخدام فئة السرعة في تطبيقات متعددة.

في ملامح وجوه المنحى، يحتاج المستخدم لا تقلق حول كيفية الطبقات الداخلية.

تفاصيل تطبيق فئة فان مخفية من المستخدم، لذلك يحتاج المستخدمون فقط إلى معرفة كيفية استدعاء الطبقة فان لاستكمال وظيفة معينة، دون الحاجة إلى معرفة الدرجة فان هو أن تفعل ذلك بأنفسهم أو استدعاء فئة أخرى للقيام بهذا العمل.

جافا يدعم الميراث واحد فقط، وهذا يعني أن فئة لا يمكن أن ترث فئات متعددة.

ممارسة التالية ليست قانونية:

public class extends Animal, Mammal{} 

جافا يدعم الميراث الوحيد واحد (الميراث والفئة الأساسية المجردة)، ولكن يمكننا استخدام واجهة لتنفيذ (واجهات متعددة الميراث لتحقيق)، وهيكل النصي مثل:

public class Apple extends Fruit implements Fruit1, Fruit2{}

عموما، نحن ترث الفئة الأساسية وفئة مجردة مع تمتد الكلمة تنفذ واجهة مع الميراث تنفذ الطبقة الكلمة.