Polimorfizm (Polymorphism)
Polimorfizm
Polimorfizm "ko'p shakllilik" ma'nosini anglatadi va vorislik orqali bir-biriga bog'langan ko'plab sinflar mavjud bo'lganda yuzaga keladi.
Oldingi bobda aytilganidek, Vorislik boshqa sinfdan atributlar va metodlarni meros olish imkonini beradi. Polimorfizm esa shu metodlardan turli vazifalarni bajarish uchun foydalanadi. Bu bizga bitta amalni turli usullarda bajarishga imkon beradi.
Masalan, Animal asosiy sinfida animalSound() metodi bor deb tasavvur qiling. Animal sinfining hosila sinflari — Cho'chqa, Mushuk, It, Qush va boshqalar. Har bir hayvon "ovoz chiqarishi" mumkin, lekin har birining ovozi boshqacha:
- Cho'chqa: xr-xr
- It: vov-vov
- Qush: chik-chirik
Bu polimorfizmdir — bitta amal (ovoz chiqarish) har bir hayvon uchun turlicha ishlaydi:
MISOL
// Asosiy sinf
class Animal {
public:
void animalSound() {
cout << "Hayvon ovoz chiqaradi \n";
}
};
// Hosila sinf
class Pig : public Animal {
public:
void animalSound() {
cout << "Cho'chqa: xr-xr \n";
}
};
// Hosila sinf
class Dog : public Animal {
public:
void animalSound() {
cout << "It: vov-vov \n";
}
};
int main() {
Animal myAnimal;
Pig myPig;
Dog myDog;
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
return 0;
}QACHON VA NIMA UCHUN "VORISLIK" VA "POLIMORFIZM" ISHLATILADI?
Kodning qayta ishlatilishi uchun foydali: yangi sinf yaratganingizda mavjud sinfning atributlari va metodlarini qayta ishlating.
