Полиморфизам (рачунарство) — разлика између измена

Садржај обрисан Садржај додат
Ред 80:
 
=== Хијерархијски полиморфизам ===
 
Хијерархијски полиморфизам користи успостављене хијерархијске односе надтип и подтип међу класама као средство остваривања полиморфизма. Он је последица особине објектно-оријентисаних програмских језика да програмски код, који је написан да ради са објектима једне класе, може да ради и са објектима свих њених поткласа. Нпр. функција написана тако да узима објекат одређеног типа ''Т'', али да исправно ради и уколико јој се пошаље објекат који припада типу ''С'' који је подтип типа ''Т'' (по принципу супституције који је формулисала [[Барбара Лисков|Лисков]] ). Овај тип односа се понекад означава као ''C''<:''Т''. С друге стране, каже се да је ''Т'' супертип од ''С'', означавамо ''Т'':>''С''. Подтип полиморфизма се обично решава динамички (види доле).
 
 
У следећем примеру су авиони, бродови и аутомобили подтипови превозног средства. Процедура ispisiMesto() прихвата превозно средство, али ће исправно радити и ако се преноси подтип:
Линија 122 ⟶ 120:
 
На пример, ако су <code>Number</code>, <code>Rational</code>, и <code>Integer</code> типови такви да <code>Number</code>:> <code>Rational</code> и <code>Number</code>:> <code>Integer</code>, функција која као аргумент прима <code>Number</code> ће радити једнако добро када прима <code>Integer</code> или <code>Rational</code>. Стварни тип објекта може бити скривен од стране клијената у [[Црна кутија|црну кутију]], и приступа му се преко објекта идентитета. У ствари, ако је тип <code>Number</code> апстрактан, можда неће ни бити могуће приступити објекту чија је већина пореклом од типа <code>Number</code>. Ова врста хијерархије типа је позната - нарочито у контексту [[Scheme (programski jezik)|Шема програмског језика]]-као нумерички торањ, и обично садржи још много типова.
 
 
[[Објектно-оријентисано програмирање|Објектно-оријентисани језици]] почивају на концептима [[класа (рачунарство)|класе]] и [[Наслеђивање (објектно-оријентисано програмирање)|наслеђивања класа]]. Наслеђивање класа није ништа друго до декларисање да једна класа представља специјалан случај (или поткласу) друге класе, тј. да друга класа представља уопштење (тј. наткласу) прве класе. Релација поткласа је специјалан случај релације подтип, а релација наткласа специјалан случај релације надтип. <ref name="Malkov" />