آموزش مقدماتی C++ | چندریختگی

چندریختگی

مفهوم چند ریختگی زمانی اتفاق می افتد که چند کلاس از طریق وراثت به هم مرتبط شده اند. همانطور که گفتیم کلاس های فرزند، متد ها و ویژگی های کلاس مادر را به ارث می برند. چندریختگی به این معنی است که متد هایی که در کلاس مادر نوشته شده اند را دوباره در کلاس فرزند تعریف کنیم.

همانطور که در مثال زیر میبینید، کلاس های Pig و Dog فرزندان کلاس Animal هستند، پس متد animalSound را از کلاس Animal به ارث می برند. اما کلاس Pig متد به ارث برده شده را بازنویسی کرده است و در نتیجه متن متفاوت و مختص به خود را چاپ می کند. چند ریختگی زمانی کاربرد دارد که یک کلاس مادر و تعداد زیادی کلاس فرزند داریم. یک متد در تمام کلاس های فرزند کار یکسانی انجام می دهد به جز یکی دو تا از کلاس ها. در این موارد می توانیم آن متدِ “تقریباً مشترک” را در کلاس مادر تعریف کرده و در کلاس هایی که نیاز به عملکرد متفاوت این متد دارند، دوباره آن را تعریف کنیم.

// کلاس مادر
class Animal {
  public:
    void  animalSound() {
    cout << "The animal makes a sound \n"  ;
  }
};

//کلاس فرزند
class Pig : public Animal {
  public:
    void  animalSound() {
    cout << "The pig says: wee wee \n" ;
    }
};

// کلاس فرزمد
class Dog  : public Animal {
};

int main() {
  Animal  myAnimal;
  Pig myPig;
  Dog myDog;

  myAnimal.animalSound();
  myPig.animalSound();
  myDog.animalSound();
  return 0;
}
 

 

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1