Polimorfismo C++
Polimorfismo
Polimorfismo significa "molte forme" e si verifica quando abbiamo molte classi che sono correlate tra loro per eredità.
Come abbiamo specificato nel capitolo precedente; L'ereditarietà ci consente di ereditare attributi e metodi da un'altra classe. Il polimorfismo utilizza questi metodi per eseguire compiti diversi. Questo ci consente di eseguire una singola azione in modi diversi.
Ad esempio, pensa a una classe base chiamata Animal
che ha un metodo chiamato animalSound()
. Le classi derivate di Animali potrebbero essere Maiali, Gatti, Cani, Uccelli - E hanno anche la propria implementazione di un suono animale (il maiale oinks e il gatto miagola, ecc.):
Esempio
// 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" ;
}
};
Ricorda dal capitolo Eredità che usiamo il :
simbolo per ereditare da una classe.
Ora possiamo creare Pig
e
Dog
oggetti e sovrascrivere il animalSound()
metodo:
Esempio
// 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;
}
Perché e quando usare "ereditarietà" e "polimorfismo"?
- È utile per il riutilizzo del codice: riutilizza attributi e metodi di una classe esistente quando crei una nuova classe.