Polimorfizem

Polimorfizem je beseda grškega izvora in pomeni zmožnost zavzeti različne oblike. Pri objektno usmerjeni paradigmi implicira polimorfizem uporabo operacij (metod) na različne načine, odvisno od instance, na kateri delujejo. Polimorfizem omogoča objektom z različnimi internimi strukturami, da imajo skupen zunanji vmesnik. Polimorfizem je posebno učinkovit pri udejanjanju dedovanja.

Primer:

Imejmo dva ali več razredov živali (Macka, Pes,..). Vsaka vrsta živali se oglaša na svoj način. Vsem pa je skupno, da sodijo med živali (razred Zival). Torej so dedovane (izpeljane) iz tega skupnega razreda. Če kličemo metodo oglasiSe()., se bo vsaka oglasila na svoj način.

Primer:

Imejmo nekaj razredov: Krog, Pravokotnik in Trikotnik. Vsi soa izpeljani iz nadrazreda Lik in podedujejo tudi njegove metode in atribute. Vsak od njih ima metodo racunPloscine(). Čeprav sta ime in namen teh metod enaka, je interna implementacija (računanje ploščine lika) različna pri vseh podrazredih. Ko objekt iz razreda Krog kliče svojo metodo racunPloscine(), bo operacija izračunala ploščino brez konflikta z metodo racunPloscine() iz razreda Pravokotnik ali iz razreda Trikotnik.

Mimogrede: na sliki so z - označeni atributi (in lahko tudi metode), ki so navzven skriti (privatni). Z znakom + pa so označene metode (lahko bi bili tudi atributi), ki so navzven dostopni (javni),