جافا تعدد الأشكال
جافا تعدد الأشكال
يعني تعدد الأشكال "العديد من الأشكال" ، ويحدث عندما يكون لدينا العديد من الفئات التي ترتبط ببعضها البعض عن طريق الوراثة.
كما حددنا في الفصل السابق ؛ يتيح لنا الوراثة وراثة السمات والطرق من فئة أخرى. يستخدم تعدد الأشكال هذه الأساليب لأداء مهام مختلفة. هذا يسمح لنا بأداء عمل واحد بطرق مختلفة.
على سبيل المثال ، فكر في فئة فائقة تسمى 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();
}
}
لماذا ومتى يتم استخدام "الميراث" و "تعدد الأشكال"؟
- إنها مفيدة لإعادة استخدام الكود: إعادة استخدام سمات وطرق فئة موجودة عند إنشاء فئة جديدة.