Što je polimorfizam?

U računalnoj znanosti polimorfizam se odnosi na sposobnost programskog jezika da interpretira objekte na različite načine na temelju njihove klase ili tipa podataka. U biti, sposobnost jedne metode da se primijeni na izvedene klase i postigne odgovarajući izlaz.

Tri grane polimorfizma

  • Ad hoc polimorfizam je kada se funkcija implementira različito ovisno o ograničenom broju specificiranih tipova i kombinacija ulaznih parametara. Primjer ad hoc polimorfizma je preopterećenje funkcije.
  • Parametarski polimorfizam je kada se kod piše bez ikakve specifikacije tipa, i tako se može koristiti s bilo kojim brojem različitih tipova koji su kasnije navedeni. U objektno-orijentiranom programiranju, to se često naziva generičko programiranje.
  • Polimorfizam uključivanja, poznat i kao podtip, je kada se jedno ime može odnositi na primjere bilo kojeg broja različitih klasa, sve dok dijele isti superrazred.

Primjer polimorfizma u Javi

Primjer koda

 class OverloadedObject {void overloadedMethod (int a) {System.out.println ("Ova metoda se poziva kada je parametar cijeli broj. a =" + a); } void overloadedMethod (int a, int b) {System.out.println ("Ova metoda se poziva kada postoje dva parametra, a oba su oba broja. a =" + a + ", b =" + b); } void overloadedMethod (double a) {System.out.println ("Ova metoda se poziva kada postoji jedan parametar, a to je broj dvostruke preciznosti. a =" + a); }} klasa DemonstrateOverloading {javna statična prazna glavna (String args []) {OverloadedObject myObj = new OverloadedObject (); myObj.overloadedMethod (1); myObj.overloaded Metoda (2, 3); myObj.overloadedMethod (4); }} 

Primjer izlaznog koda

 Ova metoda se poziva kada je parametar cijeli broj. a = 1 Ova metoda se naziva kada postoje dva parametra, a oba su cjelobrojna. a = 2, b = 3 Ova metoda se poziva kada je parametar broj dvostruke preciznosti. a = 4 

Primijetite da on proizvodi različite izlazne vrijednosti na temelju različitih ulaznih parametara, čak i ako su pozvani naziv klase i metode isti svaki put.

Objektno-orijentirani, izlaz, parametar, polimorfni virus, programski jezik, programski izrazi