Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Metodien ylikirjoittaminen | Polymorfismi
Olio-ohjelmointi Pythonissa

bookMetodien ylikirjoittaminen

Pyyhkäise näyttääksesi valikon

Note
Määritelmä

Metodin ylikirjoitus on keskeinen mekanismi, joka mahdollistaa polymorfismin perintöön perustuvassa olio-ohjelmoinnissa. Sen avulla aliluokat voivat tarjota erikoistuneita toteutuksia yliluokan määrittelemille metodeille, muodostaen polymorfisen käyttäytymisen perustan.

12345678910111213141516
class Vehicle: def move(self): return "The vehicle is moving" class Car(Vehicle): def move(self): return "The car is driving" class Boat(Vehicle): def move(self): return "The boat is sailing" vehicles = [Car(), Boat()] for v in vehicles: print(v.move())
copy

Metodin ylikirjoitus mahdollistaa erilaisten olioiden vastaamisen omalla tavallaan samoihin metodikutsuihin säilyttäen yhtenäisen rajapinnan. Selkeä tapa havainnollistaa tätä on esimerkit eläimistä, ajoneuvoista ja tosielämän tilanteista. Ylikirjoituksen avulla koodi on joustavampaa, uudelleenkäytettävämpää ja mukautuvampaa.

Metodin ylikirjoituksen keskeisiä käsitteitä ovat ylikirjoitusmekaniikka, polymorfinen käyttäytyminen ja Super()-funktion käyttö:

Ylikirjoituksen toiminta
expand arrow
  • Lapsiluokan metodit korvaavat yliluokan samannimiset metodit;

  • Säilyttää metodin allekirjoituksen, mutta muuttaa toteutuksen;

  • Perintähierarkia määrittää metodin valinnan;

  • Mahdollistaa erikoistuneen toiminnan aliluokissa.

Polymorfinen käyttäytyminen
expand arrow
  • Sama metodikutsu käynnistää eri toteutuksia;

  • Yliluokan viittaukset voivat sisältää aliluokan olioita;

  • Metodin valinta suoritetaan ajonaikaisesti olion todellisen tyypin perusteella;

  • Mahdollistaa geneerisen koodin, joka toimii erikoistuneiden olioiden kanssa.

Super()-käyttö
expand arrow
  • Pääsy yliluokan metodeihin ylikirjoitetuista metodeista;
  • Laajentaa yliluokan toiminnallisuutta korvaamatta sitä kokonaan;
  • Säilyttää koodin uudelleenkäytön lisäten erikoistumista;
  • Rakentaa olemassa olevien toteutusten päälle vaiheittain.
question mark

Mikä väite kuvaa parhaiten metodin ylikirjoituksen roolia?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 2
some-alt