НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

C++ Підручник

C++ Головна C++ Інтро C++ Початок роботи C++ Синтаксис C++ Виведення C++ Коментарі C++ Змінні C++ Введення користувача C++ Типи даних C++ Оператори C++ Рядки C++ Математика C++ Булеві C++ Умови C++ Switch C++ Цикл While C++ Цикл For C++ Break/Continue C++ Масиви C++ Структури C++ Enums C++ Довідники C++ Вказівники

C++ Функції

C++ Функції C++ Параметри функції C++ Перевантаження функцій C++ Область застосування C++ Рекурсія

C++ Класи

C++ ООП C++ Класи/Об’єкти C++ Методи класу C++ Конструктори C++ Специфікатори доступу C++ Інкапсуляція C++ Успадкування C++ Поліморфізм C++ Файли C++ Винятки C++ Дата

C++ Як зробити

Скласти два числа Випадкові числа

C++ Довідник

C++ Довідник C++ Ключові слова C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime>

C++ Приклади

C++ Приклади C++ Компілятор C++ Вправи C++ Вікторина C++ Сертифікат

Мова програмування C++. Уроки W3Schools для початківців українською мовою

En Es De

C++ Поліморфізм


Поліморфізм

Поліморфізм означає "багато форм", і він виникає, коли ми маємо багато класів, пов’язаних один з одним шляхом успадкування.

Як ми вказали в попередньому розділі, Наслідування дозволяє нам успадковувати атрибути та методи з іншого класу.

Поліморфізм використовує ці методи для виконання різних завдань. Це дозволяє нам виконувати одну дію різними способами.

Наприклад, подумайте про базовий клас під назвою Animal, який має метод під назвою animalSound(). Похідними класами Animals (тварин) можуть бути Pigs, Cats, Dogs, Birds (свині, коти, собаки, птахи) — і вони також мають власну реалізацію звуку тварин (свиня хрюкає, а кіт нявкає тощо):

Приклад

// Базовий клас
class Animal {
  public:
    void animalSound() {
      cout << "Тварина видає звук \n";
    }
};

// Похідний клас
class Pig : public Animal {
  public:
    void animalSound() {
      cout << "The pig says: wee wee \n";
    }
};

// Похідний клас
class Dog : public Animal {
  public:
    void animalSound() {
      cout << "The dog says: bow wow \n";
    }
};

Пам’ятайте з розділу про Успадкування, що ми використовуємо символ : для успадкування від класу.

Тепер ми можемо створювати об’єкти Pig і Dog та перевизначати animalSound() метод:

Приклад

// Базовий клас
class Animal {
  public:
    void animalSound() {
      cout << "Тварина видає звук \n";
    }
};

// Похідний клас
class Pig : public Animal {
  public:
    void animalSound() {
      cout << "The pig says: wee wee \n";
    }
};

// Похідний клас
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;
}
Спробуйте самі »

Навіщо і коли використовувати «Наслідування» та «Поліморфізм»?

— Це корисно для повторного використання коду: повторно використовуйте атрибути та методи існуючого класу під час створення нового класу.



Коментарі