⇧
vadnica-logo
Moje storitve O projektu Telegram O meni O meni

Osnove OOP: Polimorfizem

Beseda Polimorfizem izhaja iz grščine in dobesedno pomeni "mnogoličnost" oziroma sposobnost prevzemanja več oblik. V objektno usmerjenem programiranju to pomeni, da lahko različni razredi implementirajo enako imenovano metodo, vendar jo vsak izvede na svoj specifičen način. Ko to metodo pokličemo, PHP v ozadju samodejno ugotovi, kateremu objektu pripada, in zažene pravilno kodo.

Prispodoba iz resničnega sveta: Gumb "Predvajaj" (Play)

Predstavljaj si univerzalni daljinski upravljalnik z gumbom PLAY. Ta gumb je ena sama metoda, ki jo lahko pritisneš na različnih napravah (objektih):

Ukaz oziroma klic metode je vedno popolnoma enak (play()), vendar je končni rezultat odvisen od naprave, s katero upravljaš. To je polimorfizem v praksi!

PRIMER
REZULTAT
Tu bo prikazan rezultat...

Zakaj je polimorfizem tako koristen?

Glavna moč polimorfizma je v tem, da nam omogoča pisanje izjemno prilagodljive kode. Ustvarimo lahko eno glavno funkcijo, ki sprejme splošen tip (npr. vmesnik ali starševski razred), nato pa ji lahko brez spreminjanja kode preimenujemo katerikoli podrazred.

Če bi v prihodnosti tvoji aplikaciji dodal nov razred (npr. ElektricniSkuter), ti ne bo treba spreminjati obstoječih funkcij za vožnjo. Dokler skuter sledi enakim pravilom in ima metodo za premik, bo sistem deloval brez ene same modifikacije!

Hitra primerjava: Dedovanje vs. Polimorfizem

Začetniki ta dva pojma pogosto mešajo, saj sta tesno povezana. Poglej si njun medsebojni odnos:

Koncept OOP Glavni cilj Pristop v kodi
Dedovanje Ponovna uporaba kode (DRY). Otrok vzame kodo od starša, da mu je ni treba pisati znova.
Polimorfizem Prilagodljivost in enoten vmesnik. Različni otroci imajo istoimenske metode s povsem različnim delovanjem.