Polymorfismi
Polymorfismi on olio-ohjelmoinnissa esiintyvä käsite, jonka mukaan aliluokat voivat määrittää oman yksilöllisen toimintansa ja silti jakaa saman toiminnallisuuden yläluokan kanssa.[1] Virtuaalimetodi on jäsenfunktio, joka voidaan määritellä uudelleen perityssä luokassa.[2] Bjarne Stroustrupin mukaan polymorfismi tarjoaa yhden rajapinnan eri tyyppisiin entiteetteihin.[3][4]
Perinteisesti tyypitetyt kielet, jotka perustuvat funktioille ja proseduureille, tukevat vain uniikkeja tyyppejä operandeilla.[5] Tämäntyyppiset kielet ovat monomorfisia: esimerkiksi Pascal on monomorfinen kieli.[5]
Polymorfiset kielet voidaan jakaa seuraavasti:[5]
- universaali
- parametrinen
- liittävä
- ad-hoc
- ylikuormittava
- pakottava
Universaali polymorfismi toimii äärettömällä määrällä tyyppejä ja suorittaa samaa ohjelmakoodia kaikille tyypeille.[5] Ad-hoc polymorfismi toimii rajatulla määrällä tyyppejä ja voidaan toteuttaa joukolla monomorfisia funktioita: eri tyypeille käytetään eri ohjelmakoodia.[5]
Katso myös[muokkaa | muokkaa wikitekstiä]
Lähteet[muokkaa | muokkaa wikitekstiä]
- ↑ Polymorphism docs.oracle.com. Viitattu 19.2.2020. (englanniksi)
- ↑ Polymorphism cplusplus.com. Viitattu 19.2.2020.
- ↑ Bjarne Stroustrup's C++ Glossary stroustrup.com. Viitattu 22.2.2020. (englanniksi)
- ↑ Glenn G. Chappell: CS 331 Spring 2018 A Primer on Type Systems cs.uaf.edu. Viitattu 22.2.2020. (englanniksi)
- ↑ a b c d e Luca Cardelli & Peter Wegner: On Understanding Types, Data Abstraction, and Polymorphism (PDF) lucacardelli.name. Viitattu 22.2.2020. (englanniksi)