C ++ تعدد الأشكال
تعدد الأشكال
يعني تعدد الأشكال "العديد من الأشكال" ، ويحدث عندما يكون لدينا العديد من الفئات التي ترتبط ببعضها البعض عن طريق الوراثة.
كما حددنا في الفصل السابق ؛ يتيح لنا الوراثة وراثة السمات والطرق من فئة أخرى. يستخدم تعدد الأشكال هذه الأساليب لأداء مهام مختلفة. هذا يسمح لنا بأداء عمل واحد بطرق مختلفة.
على سبيل المثال ، فكر في فئة أساسية تسمى Animal
التي لها طريقة تسمى animalSound()
. يمكن أن تكون الفئات المشتقة من الحيوانات هي الخنازير والقطط والكلاب والطيور - ولديهم أيضًا طريقة التنفيذ الخاصة بهم لصوت الحيوانات (طيور الخنازير ، ومواء القطط ، وما إلى ذلك):
مثال
// Base class
class Animal {
public:
void
animalSound() {
cout << "The animal makes a sound \n"
;
}
};
// Derived class
class Pig : public Animal {
public:
void
animalSound() {
cout << "The pig says: wee wee \n" ;
}
};
// Derived class
class Dog
: public Animal {
public:
void animalSound()
{
cout << "The dog says: bow wow \n" ;
}
};
تذكر من فصل الوراثة أننا نستخدم :
الرمز لنرث من الفصل.
الآن يمكننا إنشاء Pig
وكائنات
Dog
وتجاوز animalSound()
الطريقة:
مثال
// Base class
class Animal {
public:
void
animalSound() {
cout << "The animal makes a sound \n"
;
}
};
// Derived class
class Pig : public Animal {
public:
void
animalSound() {
cout << "The pig says: wee wee \n" ;
}
};
// Derived class
class Dog
: public Animal {
public:
void animalSound()
{
cout << "The dog says: bow wow \n" ;
}
};
int main() {
Animal
myAnimal;
Pig myPig;
Dog myDog;
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
return 0;
}
لماذا ومتى يتم استخدام "الميراث" و "تعدد الأشكال"؟
- إنها مفيدة لإعادة استخدام الكود: إعادة استخدام سمات وطرق فئة موجودة عند إنشاء فئة جديدة.