Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.70
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
#1

Полиморфизм в Objective-C - Objective-C

24.02.2014, 21:48. Просмотров 3249. Ответов 3
Метки нет (Все метки)

Всем привет!

Без упоминания долгой предыстории, затронули с товарищем понятие полиморфизма в Objective-C.
Я привел популярный пример в стиле: есть класс "Музыкальный инструмент", бла-бла, передаем куда-то наследников - баян, рояль и барабаны, и вызываем у них у всех единый метод "играть", который у каждого выполняется по своему.
И, вот, нашел цитату в Википедии:

"В объектно-ориентированном программировании полиморфизм подтипов (или полиморфизм включения) представляет собой концепцию в теории типов, предполагающую использование единого имени (идентификатора) при обращении к объектам нескольких разных классов, при условии, что все они являются подклассами одного общего надкласса (суперкласса). Полиморфизм подтипов состоит в том, что несколько типов формируют подмножество другого типа (их базового класса) и потому могут использоваться через общий интерфейс."

НО, пока я победно ждал поднятие белого флага, товарищ в ответ мне кинул линк на документацию Apple, где сказаны удивительные вещи. Мол, все просто:
"The ability of different objects to respond, each in its own way, to identical messages is called polymorphism."

Ни слова о том, что у объектов должен быть общий родитель!
https://developer.apple.com/library/...05149-CH5-SW11

Это как получается, у Apple свое представление о полиморфизме?
Что вы думаете по этому поводу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2014, 21:48     Полиморфизм в Objective-C
Посмотрите здесь:

Windows+objective-c=love? - Objective-C
Возможно такое? Потому что как язык он мне импонирует, но мака, естественно, у меня нет. Всякие хакОси ставить не хочу. Есть хоть какая-то...

Существует ли Objective-C на windows - Objective-C
Доброе время суток! Подскажите есть ли objective-c для windows?

Как подружить Qt и Objective-C - Objective-C
Доброе время суток, уважаемые форумчане Возник вопрос, который уже с месяц довольно сильно беспокоит моё сознание и нарушает мой...

Objective-C и Яндекс.Карты - Objective-C
Доброго времени суток! Хочу попробовать написать приложение для iPhone, нужно чтобы на карте показывало местоположение пользователей и...

@property,@synthesize в Objective-C - Objective-C
Может кто нибудь понятно объяснить, что на самом деле делает @property и зачем @synthesize. Читал wiki и другие сайты, но так и не...

Objective C,MVC,Singlton - Objective-C
Здравствуйте, товарищи программисты. Хотелось бы задать вам несколько вопросов. Надеюсь получить на них ответы. Разбираюсь с Objective C...

Objective-C для новичка - Objective-C
Всем привет. Народ объясните пожалуйста что собственно из себя представляет objective-C, а именно: это надмножество языка Си? Можно учить...

Исходники UDP клиента на Objective-C - Objective-C
Здравствуйте! Подскажите, пожалуйста, где можно скачать исходники UDP-клиента на Objective-C. Знаю про CocoaAsyncSocket, но в нем...

Objective-C для новичков и чайников - Objective-C
други, поясните я новичок, знаю основы программирования, в теории знаю js и c++ заинтересовался Qt - но обломался поняв что надо...

Point в C objective без OpenGL - Objective-C
Доброго времени суток! Интересует вопрос: Можно ли БЕЗ использования OpenGL нарисовать 2 класса "точка",соединить их линией и...

Наследство Objective C на онлайн компиляторе - Objective-C
сейчас пока приходится дома использовать онлайн-компилятор)не очень удобно, но все же хоть какая то возможность... пробовала писать такой...

Как оптимизировать код objective-c? - Objective-C
Проблема заключается в том, что моё приложение жрёт много оперативной памяти (300 мб). На 4s приложение вылетает, на остальных - виснет. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
25.02.2014, 06:57     Полиморфизм в Objective-C #2
Цитата Сообщение от kievkao Посмотреть сообщение
все они являются подклассами одного общего надкласса (суперкласса)
Как минимум это не так, ибо может быть единый интерфейс, а не обязательно суперкласс.

Вообще по идее Apple прав, так как в теории язык может поддерживать полиморфизм, но к примеру не поддерживать интерфейсы и наследование.
korvin_
1700 / 1238 / 187
Регистрация: 28.04.2012
Сообщений: 4,464
25.02.2014, 10:54     Полиморфизм в Objective-C #3
Цитата Сообщение от glvrzzz Посмотреть сообщение
Как минимум это не так, ибо может быть единый интерфейс, а не обязательно суперкласс.
В языке может не быть интерфейсов. Фраза в вике взята из Booch, et all 2007 «Object-Oriented Analysis and Design with Applications», которую я «не читал, но осуждаю». Следовало вместо слова «класс» использовать более общее «тип», тогда и не было бы проблемы.

Цитата Сообщение от glvrzzz Посмотреть сообщение
Вообще по идее Apple прав, так как в теории язык может поддерживать полиморфизм, но к примеру не поддерживать интерфейсы и наследование.
Вообще речь идет о вполне конкретном виде полиморфизма и определение в вике правильное, если посмотреть дальше, в раздел про субтипы:
Some languages employ the idea of subtyping to restrict the range of types that can be used in a particular case of polymorphism. In these languages, subtype polymorphism (sometimes referred to as inclusion polymorphism or dynamic polymorphism) allows a function to be written to take an object of a certain type T, but also work correctly if passed an object that belongs to a type S that is a subtype of T (according to the Liskov substitution principle). This type relation is sometimes written S <: T. Conversely, T is said to be a supertype of S—written T :> S.
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
25.02.2014, 14:00  [ТС]     Полиморфизм в Objective-C #4
То есть, получается, мы можем рассматривать в контексте полиморфизма объекты, не имеющие общего суперкласса, но, например, соответствующие одному и тому же протоколу?
Yandex
Объявления
25.02.2014, 14:00     Полиморфизм в Objective-C
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru