«Մասնակից:MHamlet/Սևագրություն/2»–ի խմբագրումների տարբերություն

Առանց խմբագրման ամփոփման
չNo edit summary
No edit summary
В [[объектно-ориентированное программирование|объектно-ориентированном программировании]] '''полиморфизм подтипов''' (или '''полиморфизм включения''') представляет собой концепцию в [[теория типов|теории типов]], предполагающую использование единого имени (идентификатора) при обращении к объектам нескольких разных классов, при условии, что все они являются '''подклассами''' одного общего '''надкласса''' (суперкласса). Полиморфизм подтипов состоит в том, что несколько типов формируют подмножество другого типа (их базового класса) и потому могут использоваться через общий интерфейс.
 
== Պատմությունը ==
== История ==
«Պոլիմորֆիզմ» տերմինը գալիս է ''հին հունական'' πολύς («շատ») և μορφή («ձև, տեսք») բառերից։ Տերմինն առաջին անգամ հիշատակվել է [[:en:Christopher Strachey|Քրիստոֆեր Սթրեչի]] «[[:en:Fundamental Concepts in Programming Languages|Ծրագրավորման լեզուների հիմնական հիմունքները]]» անվանումով լեկցիաների կոնսպեկտում։ Առաջին անգամ պոլիմորֆիզմը իրականացվել է [[ML]] լեզվում, [[ժառանգում (ծրագրավորում)|ժառանգում]] և [[ինկապսուլյացիա (ծրագրավորում)|ինկապսուլյացիա]] հասկացողությունների հետ միասին։ Մի քանի տարի անց [[Common Lisp]] լեզվի [[Common Lisp Object System]] ենթաբազմությունը ստանդարտավորվեց՝ դառնալով [[օբյեկտային կողմնորոշված ծրագրավորում|օբյեկտային կողմնորոշված ծրագրավորման]] առաջին ստանդարտը։
Термин «полиморфизм» происходит от ''др.-греч.'' πολύς («много») и μορφή («форма, облик, устройство»). Термин впервые упоминается в конспекте лекций [[:en:Christopher Strachey|Кристофера Стрэчи]] под названием «[[:en:Fundamental Concepts in Programming Languages|Фундаментальные основы языков программирования]]». Впервые полиморфизм реализован в языке [[ML]], наряду с понятиями [[наследование (программирование)|наследования]] и [[инкапсуляция (программирование)|инкапсуляции]]. Спустя несколько лет подмножество [[Common Lisp Object System]] языка [[Common Lisp]] было стандартизировано, став первым стандартом объектно-ориентированного программирования.
 
== Պոլիմորֆիզմի տեսակները ==
== Виды полиморфизма ==
 
=== Параметрический полиморфизм ===
 
В следующем примере коты и псы являются подтипами животных. Процедура определена для животных, но также будет работать корректно, получив на входе один из подтипов:
<!-- Атрибут «lang=java» используется лишь для подсветки синтаксиса — это не корректный код на Java -->
<source lang=java>
abstract class Animal {
</source>
 
== См.Տես такжеնաև ==
* [[:en:Polymorphism in object-oriented programming|Polymorphism in object-oriented programming]]
* [[Բադային տիպավորում]]
* [[Утиная типизация]]
* [[Համակարգչային վիրուսների պոլիմորֆիզմ]]
* [[Полиморфизм компьютерных вирусов]]
* [[F համակարգ]]ը [[լամբդա֊հաշվարկ]]ի համար պարամետրական պոլիմորֆիզմով
* [[Система F]] для [[лямбда-исчисление|лямбда-исчисления]] с параметрическим полиморфизмом
* [[Վիրտուալ ժառանգում]]
* [[Виртуальное наследование]]
* [[:en:Type class|КлассՏիպերի типовդասեր]]
 
== Ծանոթագրություններ ==
== Примечания ==
{{ծանցանկ}}
{{примечания}}
 
== Ссылки ==
* [[:en:Robert Harper (computer scientist)|Харпер Р.]] — [http://bookre.org/reader?file=532778&pg=37 Введение в Стандартный ML, с.32, «Полиморфизм и перегрузка»]
* http://msdn.microsoft.com/ru-ru/library/ms173152(v=vs.90).aspx
 
== Литература ==
* {{книга
|автор = Тимоти Бадд.
|заглавие = Объектно-ориентированное программирование в действии
|оригинал = An Introduction to Object-Oriented Programming
|ответственный =
|издание =
|место = СПб.
|издательство = «Питер»
|год = 1997
|страницы =
|страниц = 464
|серия = В действии
|isbn = 5-88782-270-8
|тираж = 6000
}}
* {{книга
|автор = John C. Mitchell
|часть = 6.4. Polymorphism and overloading
|заглавие = Concepts in Programming Languages
|издательство = Cambridge University Press
|год = 2002
|страницы = 145-151
|страниц = 540
|isbn = 978-0-521-78098-8
}}
 
[[Կատեգորիա:Օբյեկտային կողմնորոշված ծրագրավորում]]
3107

edits