logo
Учебник_ПОА

Полиморфизм

В сфере компьютерного программирования полиморфизмом называют возможность производного класса изменять или переопределять методы, которые он наследует от базового класса. Эта возможность используется, если нужно выполнить какие-то особые действия в методе, который отличается от базового, либо не определен в базовом классе,. Например, поскольку метод Animal.MoveLeft должен быть общим, чтобы подходить для всех животных, он является, возможно, очень простым, как например "изменение положения так, чтобы голова животного была в направлении X". Однако для класса Cat этого может быть недостаточно. Может потребоваться указать, как Cat двигает лапами и хвостом при поворотах. Или, к примеру, если описывается класс Fish или класс Bird, то, возможно, потребуется описать в каждом из этих классов свой метод MoveLeft. Поскольку можно настроить поведение метода MoveLeft для конкретного класса, в коде, создающем объект класса Animal и его наследников, отсутствует вызов отдельного метода для каждого животного. Пока объект наследует от Animal, достаточно, чтобы код вызывал метод MoveLeft. При этом будет вызвана та версия метода MoveLeft, которая соответствует конкретному типу животного-объекта в момент обращения к методу.