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 Animal
wat '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 Pig
en voorwerpe maak en die metode
Dog
ignoreer :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.