Polimorfisme C++


Polimorfisme

Polimorfisme berarti "banyak bentuk", dan itu terjadi ketika kita memiliki banyak kelas yang terkait satu sama lain melalui pewarisan.

Seperti yang kami tentukan di bab sebelumnya; Warisan memungkinkan kita mewarisi atribut dan metode dari kelas lain. Polimorfisme menggunakan metode tersebut untuk melakukan tugas yang berbeda. Ini memungkinkan kita untuk melakukan satu tindakan dengan cara yang berbeda.

Misalnya, pikirkan kelas dasar yang disebut Animalyang memiliki metode yang disebut animalSound(). Kelas Hewan yang diturunkan dapat berupa Babi, Kucing, Anjing, Burung - Dan mereka juga memiliki penerapan sendiri dari suara hewan (suara babi, dan kucing mengeong, dll.):

Contoh

// 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" ;
  }
};

Ingat dari bab Warisan bahwa kita menggunakan :simbol untuk mewarisi dari kelas.

Sekarang kita dapat membuat Pigdan Dogobjek dan mengganti animalSound()metode:

Contoh

// 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;
}

Mengapa Dan Kapan Menggunakan "Warisan" dan "Polimorfisme"?

- Berguna untuk penggunaan kembali kode: menggunakan kembali atribut dan metode kelas yang ada saat Anda membuat kelas baru.