2014-12-11 2 views
1

У меня есть техническое интервью. Чтобы подготовиться к собеседованию, я прочитал эту статью: https://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions.Как определить полиморфизм, не прибегая к примерам?

В статье упоминается, что хороший кандидат должен дать хорошее определение для полиморфизма «не прибегая к примерам». Однако я не смог найти такое определение. Все определения, которые я нашел, сложны.

Что такое хорошее определение без использования примеров?

ответ

0

Искал «полиморфизм» в гугле и первого результата

языки программирования и теории типов, полиморфизм (от греческого πολύς, полигонов, «много, много» и μορφή, Morphe, «форма, форма») представляет собой единый интерфейс для объектов разных типов. Полиморфный тип - это тип, операции которого также могут применяться к значениям какого-либо другого типа или типов.

Похоже, это довольно простое определение.

0

С полиморфизмом вы можете вызывать одни и те же имена функций на нескольких объектах разных типов. Когда вы пишете программу, вы привязаны к методам типа, с которым вы программируете. Таким образом, способ получить максимальную функциональность - это программировать на своего рода общий тип. Этот общий тип описывает общие функции. Затем вы можете использовать любые конкретные типы, которые также содержат эти общие функции. То, как вы можете быть уверенным в том, что конкретные типы содержат эти общие функции, заключается в том, что определенные типы подписывают «контракт», говорящий, что они обещают содержать эти общие функции или путем использования им наследования. Этот контракт также называется интерфейсом.

Итак, когда вы программируете, вы должны знать имя функции. В противном случае, если вы вызываете функцию, которая не существует, ваша программа умирает. Полиморфизм позволяет нам быть на 100% уверенным, что разные типы объектов содержат одну и ту же функцию.

0

Как поясняют Бьярню Страуструп на http://www.stroustrup.com/glossary.html#Gpolymorphism

«Обеспечение единого интерфейса для сущностей различных типов. Виртуальные функции обеспечивают динамический (время выполнения) полиморфизм через интерфейс, предоставленный базовый классом. Перегруженные функции и шаблоны обеспечивают статический (компиляционный) полиморфизм. TC++ PL 12.2.6, 13.6.1, D & E 2.9. "

Примечание: почти никто не имеет идеи статического полиморфизма, и люди обычно думают только о динамике.

Смежные вопросы