При помощи оператора instanceof можно определять, каким набором свойств и методов обладает тот или иной объект, и выполнять в зависимости от этого различные действия. Например:
Данный код, конечно, не является лучшим примером, потому что он не позволяет в будущем легко добавлять новые типы страниц в программу. Собственно, полиморфизм как раз и был изобретен для того, чтобы избежать подобных конструкций в программе, заменив их вызовами виртуальных методов. Тем не менее, в некоторых ситуациях подобный подход все же находит применение.
Задания для самостоятельного решения
При выполнении данной работы необходимо определить базовый класс и производные от него классы. Предусмотреть передачу аргументов конструкторам базового класса, использование перегруженных функций, финализированных функций.
В следующих заданиях требуется создать базовый класс (как вариант абстрактный базовый класс) и определить общие методы show(), get(), set() и другие, специфические для данного класса. Создать производные классы, в которые добавить свойства и методы.
Часть методов переопределить. Создать массив объектов базового класса и заполнить объектами производных классов. Объекты производных классов идентифицировать конструктором по имени или идентификационному номеру.
Вызвать метод show() базового класса и просмотреть массив объектов.
Использовать объекты для моделирования реальных ситуаций.
Обязательно присутствие UML - диаграммы классов (или ее аналога).