Polymorfismi

Wikipediasta
Siirry navigaatioon Siirry hakuun
Tämä artikkeli käsittelee olio-ohjelmoinnin käsitettä. Materiaalitieteen käsitettä käsittelee polymorfia.

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ä]

  1. Polymorphism docs.oracle.com. Viitattu 19.2.2020. (englanniksi)
  2. Polymorphism cplusplus.com. Viitattu 19.2.2020.
  3. Bjarne Stroustrup's C++ Glossary stroustrup.com. Viitattu 22.2.2020. (englanniksi)
  4. Glenn G. Chappell: CS 331 Spring 2018 A Primer on Type Systems cs.uaf.edu. Viitattu 22.2.2020. (englanniksi) 
  5. a b c d e Luca Cardelli & Peter Wegner: On Understanding Types, Data Abstraction, and Polymorphism (PDF) lucacardelli.name. Viitattu 22.2.2020. (englanniksi)