Необходимо описать структуру данных, которая будет описывать некоторую персону в организации. При этом в организации все сотрудники относятся к двум категориям - "руководители" и "исполнители". Пусть личная карточка этих персон должна содержать следующую информацию:
для исполнителей:
1. Личный номер
2. Фамилия имя отчество
3. должность
4. оклад
5. надбавка
6. номер отдела
для руководителей:
1. Личный номер
2. Фамилия имя отчество
3. должность
4. оклад
5. надбавка
6. ранг руководителя
Первые пять пунктов личной карточки совпадает как у исполнителей, так и у руководителей. Поэтому имеет смысл создать основной класс TPerson, который будет описывать общую персону, а затем с помощью механизма наследования создадим еще два класса-потомка TWorker и TMaster. В нашем примере мы будем рассматривать лишь один метод. Этот метод должен возвращать сумму, которую получает данный сотрудник. Для простоты будем считать, что эта сумма складывается из оклада и надбавки.

Предположим, в другом классе есть метод, который принимает в качестве параметра экземпляр класса .

Внутри этого метода происходит вызов метода CalcPay(). Предположим, теперь, что в организации появились руководители высшего звена, для которых вводится дополнительная выплата – Super Bonus. Мы хотим описать этих топ-менеджеров таким образом, чтобы использовать класс - наследник от класса TMaster.

С помощью механизма полиморфизма мы можем использовать в качестве параметра в методе TotalPay() экземпляры класса TTopMaster. При этом при расчете выплат будет учитываться и дополнительная выплата.