Полиморфизм Dynamic (run time) - это полиморфизм, существовавший во время выполнения. Здесь компилятор Java не понимает, какой метод вызывается во время компиляции. Только JVM решает, какой метод вызывается во время выполнения.
Например,
- Рассмотрим приложение, которое сериализует и де-сериализует различные типы документов.
- / g0]
- Мы можем иметь «Документ» в качестве базового класса и различные классы типов документов, вытекающие из него. Например. XMLDocument, WordDocument и т. Д.
- Класс документа будет определять методы Serialize () и De-serialize () как виртуальные, и каждый производный класс будет реализовывать эти методы по-своему на основе фактического содержимого документов.
- Когда различные типы документов должны быть сериализованы / де-сериализованы, объекты документа будут переданы ссылкой класса (документа) документа «Document» и когда «Serialize» () или 'De-serialize ()', вызываются соответствующие версии виртуальных методов.
Политический тип статического (времени компиляции) - это полиморфизм, проявляющийся во время компиляции. Здесь компилятор Java знает, какой метод вызывается. Перегрузка метода и переопределение метода с использованием статических методов; метод переопределения с использованием частных или окончательных методов является примером статического полиморфизма
Например,
- Объект сотрудника может иметь два метода print (), которые не принимают аргументов, а один принимает префиксную строку, которая будет отображаться вместе с данными сотрудника.
- Учитывая эти интерфейсы, когда метод print () вызывается без каких-либо аргументов, компилятор, рассматривающий аргументы функции, знает, какая функция предназначена для вызова и он соответствующим образом генерирует объектный код.
Подробнее читайте в разделе «Что такое полиморфизм» (Google).
задан Colin Ramsay 25 May 2012 в 00:17
поделиться