2.3 POLIMORFIZAM

 

Polimorfizam (engl. polymorphism), rječ grčkog porjekla, znači "mnogo oblika" i predstavlja osobinu koja omogućava da se jedan način pristupa koristi za opštu klasu akcija. Specifičnost akcije biće određena tačnom prirodom situacije. Razmotrimo stek (strukturu "poslednji koji uđe, prvi izlazi"). Možete da imate program kome su potrebne tri vrste steka: jedan za cjele brojeve, drugi za brojeve u pokretnom zarezu, a treći za znakove. Algoritam kojim se obrazuju stekovi uvek je isti, bez obzira na to što se u njima čuvaju različiti podaci. U jezicima koji nisu objektno orijentisani morali biste za svaki stek da napišete poseban skup naredaba u kojima bi se koristila različita imena. Međutim, zbog postojanja polimorfizma, u Javi možete da definišete opšti skup naredaba za stekove koji će imati ista imena.

Uopšteno govoreći, koncept polimorfizma često se prikazuje frazom "jedan način pristupa, više metoda". Ovo znači mogućnost pravljenja opšteg načina pristupa za rad sa grupom srodnih aktivnosti. To pomaže smanjenju složenosti, omogućujući da se istim načinom pristupa zada opšta klasa akcija. Na prevodiocu je da odabere specifičnu akciju (tj. metodu) shodno situaciji. Programer ne mora ručno da bira. Potrebno je samo da zapamti i iskoristi opšti pristup.

Ako nastavimo priču sa psom, možemo reći da je pseće čulo mirisa polimorfno. Ako pas oseti mačku, on će zalajati i pojuriti za njom. Ako oseti svoju hranu, pas će početi da luči pljuvačku i otrčati do svoje posude. Isto čulo se koristi u obe situacije. Razlika je u tome šta se oseća tim čulom, tj. razlikuju se vrste podataka sa kojima radi pseći nos! Ista ova opšta ideja može da se primeni i na metode u Java programima.