Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Полиморфизм

свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта. При использовании термина <<полиморфизм>> в сообществе ООП подразумевается полиморфизм подтипов; а использование параметрического полиморфизма называют обобщённым программированием. abstract interface C# / Java

class A { // A - абстрактный класс
  // Класс абстрактный, если содержит абстрактные методы
 public:
  // Абстрактный метод
  // virtual Тип имяМетода(аргументы) = 0;
  virtual void x() = 0;
  // Без полиморфизма и абстрактных методов
  //void x() {
  //   cout << "class A" << endl;
  // };
};

B - наследник класса A

class B : public A {
 protected:
  void x() {
    cout << "class B - method x()" << endl;
  };
};

C - наследник класса A

class C : public A {
 public:
  void x() {
    cout << "class C - method x()" << endl;
  };
};
  // Массив объектов разного типа
  A* a[SIZE] = { new B, new C };
  // Для всех элементов класса вызываем метод x()
  for(int i = 0; i < SIZE; i++)
    a[i]->x();

main.cpp