C++ polimorfizm
Polimorfizm
Polimorfizm "ko‘p shakllilik" degan ma’noni anglatadi va u bir-biri bilan vorislik orqali bog‘langan ko‘plab sinflar mavjud bo‘lganda yuzaga keladi.
Oldingi bobda aytganimizdek, vorislik boshqa sinfdan atributlar va metodlarni meros qilib olish imkonini beradi. Polimorfizm esa bu metodlardan turli vazifalarni bajarish uchun foydalanadi. Bu bitta amalni turli usullarda bajarish imkonini beradi.
Masalan, makeSound() nomli metodga ega Animal asosiy sinfini tasavvur qiling. Animal sinfining hosila sinflari cho‘chqalar, mushuklar, itlar, qushlar va h.k. bo‘lishi mumkin. Har bir hayvon "ovoz chiqara oladi", lekin har birining ovozi har xil:
- Cho‘chqa: wee wee
- It: bow wow
- Qush: tweet tweet
Bu polimorfizm: bitta amal (ovoz chiqarish) har bir hayvonda turlicha namoyon bo‘ladi:
Misol
// 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";
}
};
Vorislik bobidan eslang: sinfdan meros olish uchun : belgisidan foydalanamiz.
Endi Pig va
Dog obyektlarini yaratib, animalSound() metodini qayta aniqlashimiz (override) mumkin:
Misol
// 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;
}
O‘zingiz sinab ko‘ring »
Nima uchun va qachon "vorislik" va "polimorfizm"dan foydalanish kerak?
- Bu koddan qayta foydalanish uchun foydali: yangi sinf yaratganda mavjud sinfning atributlari va metodlaridan qayta foydalaning.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
