C++ Polimorfisme


Polimorfisme

Polimorfisme beteken "baie vorme", en dit kom voor wanneer ons baie klasse het wat deur oorerwing aan mekaar verwant is.

Soos ons in die vorige hoofstuk gespesifiseer het; Oorerwing laat ons eienskappe en metodes van 'n ander klas erf. Polimorfisme gebruik daardie metodes om verskillende take uit te voer. Dit stel ons in staat om 'n enkele aksie op verskillende maniere uit te voer.

Dink byvoorbeeld aan 'n basisklas genaamd Animalwat 'n metode genaamd het animalSound(). Afgeleide klasse diere kan varke, katte, honde, voëls wees - en hulle het ook hul eie implementering van 'n diereklank (die vark-oinks, en die kat miaau, ens.):

Voorbeeld

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

Onthou uit die Erfenis hoofstuk dat ons die :simbool gebruik om van 'n klas te erf.

Nou kan ons skep Pigen voorwerpe maak en die metode Dogignoreer :animalSound()

Voorbeeld

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

Waarom en wanneer om "oorerwing" en "polimorfisme" te gebruik?

- Dit is nuttig vir kode herbruikbaarheid: hergebruik eienskappe en metodes van 'n bestaande klas wanneer jy 'n nuwe klas skep.