دروس جافا

جافا هوم جافا مقدمة ابدأ جافا بناء جملة جافا تعليقات جافا متغيرات جافا أنواع بيانات جافا جافا نوع الصب مشغلي جافا سلاسل جافا جافا الرياضيات جافا المنطقية جافا إذا ... آخر تبديل جافا جافا أثناء التكرار جافا للحلقة جافا بريك / متابعة جافا المصفوفات

طرق جافا

طرق جافا معلمات طريقة جافا طريقة جافا التحميل الزائد نطاق جافا العودية جافا

فئات جافا

جافا OOP فئات / كائنات جافا سمات فئة Java طرق فئة جافا منشئو جافا معدِّلات جافا تغليف جافا حزم جافا / API الوراثة جافا جافا تعدد الأشكال فئات جافا الداخلية جافا التجريد واجهة جافا جافا Enums مدخلات مستخدم جافا تاريخ جافا جافا ArrayList جافا لينكدليست جافا HashMap جافا هاشسيت جافا التكرار فئات Java Wrapper استثناءات Java جافا RegEx خيوط جافا جافا لامدا

معالجة ملفات جافا

ملفات جافا جافا إنشاء / كتابة الملفات ملفات قراءة جافا جافا حذف الملفات

جافا كيف

أضف عددين

مرجع جافا

كلمات جافا طرق سلسلة جافا طرق جافا للرياضيات

أمثلة جافا

أمثلة جافا مترجم جافا تمارين جافا مسابقة جافا شهادة جافا


جافا تعدد الأشكال


جافا تعدد الأشكال

يعني تعدد الأشكال "العديد من الأشكال" ، ويحدث عندما يكون لدينا العديد من الفئات التي ترتبط ببعضها البعض عن طريق الوراثة.

كما حددنا في الفصل السابق ؛ يتيح لنا الوراثة وراثة السمات والطرق من فئة أخرى. يستخدم تعدد الأشكال هذه الأساليب لأداء مهام مختلفة. هذا يسمح لنا بأداء عمل واحد بطرق مختلفة.

على سبيل المثال ، فكر في فئة فائقة تسمى Animalذات طريقة تسمى animalSound(). يمكن أن تكون الفئات الفرعية من الحيوانات عبارة عن خنازير ، وقطط ، وكلاب ، وطيور - ولديهم أيضًا طريقة خاصة بهم لصوت الحيوان (طيور الخنازير ، ومواء القطط ، وما إلى ذلك):

مثال

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}

تذكر من فصل الميراث أننا نستخدم extendsالكلمة الأساسية للوراثة من الفصل.

الآن يمكننا إنشاء Pigوكائنات Dogواستدعاء animalSound()الطريقة على كلاهما:

مثال

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}

class Main {
  public static void main(String[] args) {
    Animal myAnimal = new Animal();  // Create a Animal object
    Animal myPig = new Pig();  // Create a Pig object
    Animal myDog = new Dog();  // Create a Dog object
    myAnimal.animalSound();
    myPig.animalSound();
    myDog.animalSound();
  }
}

لماذا ومتى يتم استخدام "الميراث" و "تعدد الأشكال"؟

- إنها مفيدة لإعادة استخدام الكود: إعادة استخدام سمات وطرق فئة موجودة عند إنشاء فئة جديدة.