C++ Polimorfizm. (Sinf/Class)

Polimorfizm bu "ko'p shakllar" degan ma'noni anglatadi. Biz Meros orqali bir-biri bilan bog'liq bo'lgan ko'plab sinflarga ega bo'lganimizda paydo bo'ladi. Polimorfizm turli xil vazifalarni bitta harakatda turli yo'llarni bajarishimiz imkoniyatiga ega bo'lamiz.

Obyektga abstrakt darajada qarash xususiyati. Masalan, turli xil oynalar mavjud: deraza oynasi, eshik oynasi, mashina oynasi, telefon oynasi. Bularning barchasi bir biridan ishlatilish sohasi, tuzulishi, shakli bilan farq qiladi. Lekin barchasini umumiy qilib oyna deb qarash mumkin. Polimorfizm turli xil obyektlar bilan bir xil uniformada ishlash imkoniyatini beradi.

Polimorfizm orqali bir jarayonni turli yo'llar bilan tashkillashtirishimiz mumkin. Polimorfizm so'zi yunoncha ikki so'zning birikmasidan tashkil topgan «poly» — Ko'p va «morphs» — formalar. Polimorfizm ham ko'p formalar degan ma'noni anglatadi.

#include <iostream>
#include <string>
using namespace std;
​
// 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;
}​

Nega va qachon "Meros" va "Polimorfizm" dan foydalanish kerak?

- Kodni qayta ishlatish uchun foydalidir: yangi sinf yaratishda mavjud sinfning atributlari va usullaridan qayta foydalanish.