Является ли метод перегрузки частью полиморфизма?Является ли метод перегрузки рассмотренным полиморфизмом?
ответ
«Полиморфизм» - это просто слово и не имеет согласованного на глобальном уровне точного определения. Вы не будете просвещены ни ответом «да», ни «нет» на ваш вопрос, потому что разница будет в выбранном определении «полиморфизма», а не в сущности перегрузки метода как функции какого-либо конкретного языка. Вы можете увидеть доказательства этого в большинстве других ответов здесь, каждый из которых представляет свое собственное определение, а затем оценивает языковые особенности.
Строго говоря полиморфизм, от wikipedia:
является способность одного типа, A, чтобы выглядеть как и быть использованы как другой тип, B.
Таким образом, метод перегрузки как таковой не считается частью этого определения полиморфизма, поскольку перегрузки определяются как часть одного типа.
Если вы говорите о полиморфизме включения (обычно считается переопределением), то это другое дело, и тогда оно считается частью полиморфизма.
Полиморфизм включения является концепцией теории типов, в которой имя может обозначать экземпляры многих разных классов, если они связаны некоторым обычным суперклассом.
Нет, перегрузка не является. Возможно, вы ссылаетесь на method overriding, который действительно является частью полиморфизма.
В целях дальнейшего уточнения, Из википедии:
Полиморфизм не является таким же, как метод перегрузки или переопределения метода. 1 Полиморфизм касается только применения конкретных вариантов реализации интерфейса или более общий базовый класс.
Так что я бы сказал, что метод переопределение и способу перегрузки и удобные функции некоторому языка относительно полиморфизма, но notthe главной заботы полиморфизма (в объектно-ориентированном программировании), который касается лишь к способности объекта действовать, как если он был еще одним объектом в своей иерархической цепочке.
There are different types of polymorphism:
- перегрузка полиморфизма (также называемый Ad-Hoc полиморфизмом)
- переопределяет полиморфизм
Так да, это часть полиморфизма.
Вы должны упомянуть, что «фактическая точность этого раздела оспаривается», поэтому еще не указано 100%, что перегрузка - это полиморфизм, как я понимаю. –
@FractalizeR может быть, ваше понимание ограничено время выполнения полиморфизма в объектно-ориентированных языках, а не термин в общем –
я только со ссылкой на исправив и здесь;) –
нет, overriding есть overloading что-то другое
Этот ответ был бы правильным, если бы вопрос заключался в том, что «метод перегружает часть ** включения ** полиморфизма?». –
Это необходимое зло, что есть и должны быть использованы только в качестве дополнения. В конце концов, перегрузки должны только преобразовывать и, в конечном счете, переходить к основному методу. OverloDing необходимо, потому что большинство vms для статичных файлов не знают, как преобразовать один тип в другой, чтобы параметр соответствовал цели, и именно здесь вы используете перегрузки, чтобы помочь.
StringBuilder
Append(String) // main
Append(Boolean) // converts and calls append(String)
Пожалуйста, ответьте на вопрос, а не комментируйте общую тему. Кроме того, проверьте правильность написания. –
Существует 2 типа полиморфизма.
- статический
- динамичными.
Перегрузки имеет тип статического полиморфизма .. наиважнейшая приходит в динамических (или во время выполнения) Полиморфизм ..
исх. http://en.wikipedia.org/wiki/Polymorphism_(computer_science), который описывает его больше.
Wikipedia pedantics в стороне, один из способов думать о полиморфизме: возможность одной строки вызова кода/одного метода выполнять разные вещи во время выполнения в зависимости от типа экземпляра объекта, используемого для совершения вызова.
Перегрузка метода не изменяет поведения во время выполнения. Перегрузка дает вам больше вариантов списков аргументов с тем же именем метода, когда вы пишете и компилируете код, но когда он скомпилирован, выбор фиксируется в коде навсегда.
Не следует путать с переопределением метода, который является частью полиморфизма.
Это одно узкое определение полиморфизма; есть определения, которые утверждают, что это больше, чем просто поведение во время выполнения. (В любом случае, рассмотрите также язык, такой как Groovy, где перегрузки ** ** разрешены во время выполнения.) –
Метод переопределения или перегрузки не является полиморфизмом. Правильный способ сказать, что полиморфизм может быть реализован с использованием метода переопределения или перегрузки и использования других способов.
Для реализации полиморфизма с использованием переопределения метода вы можете переопределить поведение метода в подклассе.
Для реализации полиморфизма с использованием перегрузки метода вам необходимо написать много методов с тем же именем и с таким же количеством параметров, но с разными типами данных и реализовать различные методы в этих методах. Теперь это также полиморфизм.
Другие способы реализации полиморфизма - это перегрузка и реализация интерфейсов оператора.
- 1. Является ли метод перегрузки полиморфизмом Раннее связывание в C#?
- 2. Является ли «constexpr if» рассмотренным SFINAE?
- 3. Является ли EntLib рассмотренным плагином?
- 4. Является ли ninject рассмотренным контейнером?
- 5. Является ли это SQl рассмотренным?
- 6. Является ли это еще полиморфизмом?
- 7. Является ли оператор «if» рассмотренным методом?
- 8. Является ли POJO Servlet когда-либо рассмотренным?
- 9. Является ли полусоединение рассмотренным слева или справа?
- 10. Является ли метод перегрузкой типа полиморфизма?
- 11. нулевое поведение функции перегрузки с полиморфизмом
- 12. Метод перегрузки?
- 13. Может ли перегрузка и переопределение в java статическим полиморфизмом, а также динамическим полиморфизмом?
- 14. метод цепочки с полиморфизмом C++
- 15. Является ли массив рассмотренным как boolean true в php?
- 16. Является ли рельсы 3.0.3 рассмотренным краем? какой последний стабильный релиз?
- 17. Является ли текстовый узел рассмотренным дочерним элементом этого элемента?
- 18. Является ли порожденный подпроцесс рассмотренным новым динамометром на Heroku?
- 19. Является ли это полиморфизмом времени компиляции или временем выполнения?
- 20. Является ли создание объекта с помощью new() оператора полиморфизмом?
- 21. Является ли что-то вроде полиморфизма в PHP действительно полиморфизмом?
- 22. Является ли это полиморфизмом в объектно-ориентированном программировании?
- 23. C# Метод перегрузки разрешения
- 24. Является ли это примером перегрузки функции python?
- 25. Является ли constexpr полезным для перегрузки
- 26. метод расширения перегрузки
- 27. метод перегрузки с маршрутизацией
- 28. Метод уникальной перегрузки F #
- 29. метод перегрузки и полиморфизма
- 30. полиморфизм и метод перегрузки
См. Http://www.itu.dk/courses/BPRD/E2009/fundamental-1967.pdf, почему это неправильно. –
См. Http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf (в частности, раздел 1.3), чтобы, возможно, легче было понять, почему это неправильно. – overthink
Википедия не надежна ... вы всегда должны обратиться к источникам. –