свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта. При использовании термина <<полиморфизм>> в сообществе ООП подразумевается полиморфизм подтипов; а использование параметрического полиморфизма называют обобщённым программированием. 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();