Java Academy · Oppitunti

Metodien ylikirjoitus

Oppikaa, miten aliluokat määrittelevät yläluokan metodit uudelleen muuttaakseen tai laajentaakseen toimintaa.

Oppitunti 2/38 vaihetta

Metodien ylikirjoitus on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 3 oppituntia.

Määritelmä

Metodin ylikirjoitus tarkoittaa yliluokan metodin määrittelemistä uudelleen aliluokassa. Metodilla on sama nimi, parametrit ja palautustyyppi, mutta uusi runko. Näin jokainen aliluokka voi tarjota oman erityisen toimintansa.

Miksi ylikirjoittaa?

Ylikirjoittaminen mahdollistaa toiminnan mukauttamisen. Esimerkiksi Dog ja Cat ovat molemmat Animal-olioita, mutta kumpikin tuottaa erilaisen äänen. Uusien metodinimien kirjoittamisen sijaan ne ylikirjoittavat saman metodin, mikä pitää käytön yhdenmukaisena.

Ylikirjoittamisen säännöt

Säännöt ovat seuraavat: metodin allekirjoituksen on vastattava täsmälleen, palautustyypin on oltava yhteensopiva eikä käyttöoikeus saa olla rajoittavampi. Käyttäkää @Override-annotaatiota käännösaikaisten virheiden havaitsemiseen.

super.method()-kutsun käyttö

Voitte edelleen kutsua yliluokan metodia super.method()-kutsulla. Näin voitte laajentaa toimintaa sen sijaan, että korvaisitte sen kokonaan, ja yhdistää vanhan ja uuden logiikan samaan kutsuun.

Virheet

Virheitä: parametrityyppien muuttaminen luo ylikuormituksen, ei ylikirjoitusta. Jos @Override unohtuu, kirjoitusvirheet voivat jäädä huomaamatta. Välttäkää myös käyttöoikeuden rajoittamista (esimerkiksi public → private), sillä se aiheuttaa käännösvirheitä.

Koodi: ylikirjoituksen esimerkki

Koodi: Dog ja Cat ylikirjoittavat Animal-luokan speak()-metodin. Vaikka olioon viitataan Animal-tyyppisen viitteen kautta, aliluokan versio suoritetaan, mikä osoittaa todellisen polymorfismin.

public class Main {
  static class Animal {
    void speak() {
      System.out.println("Some generic animal sound");
    }
  }

  static class Dog extends Animal {
    @Override
    void speak() {
      System.out.println("Woof!");
    }
  }

  static class Cat extends Animal {
    @Override
    void speak() {
      System.out.println("Meow!");
    }
  }

  public static void main(String[] args) {
    Animal a1 = new Dog(); // upcast to Animal
    Animal a2 = new Cat();
    a1.speak(); // runs Dog version
    a2.speak(); // runs Cat version
  }
}

Ylikirjoituksen tarkistus

Pikatarkistus: Mitä metodin ylikirjoitus antaa aliluokan tehdä?

Kertaus

Kertaus: Metodin ylikirjoitus määrittelee metodin uudelleen samalla allekirjoituksella, joten aliluokat voivat mukauttaa toimintaa. Käyttäkää @Override-merkintää ja kutsukaa tarvittaessa super-metodia.

Aloita maksutta

Opi Java tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
104
Oppitunnit
374

Usein kysytyt kysymykset

Onko oppitunti ”Metodien ylikirjoitus” ilmainen?

Kyllä – oppitunnin ”Metodien ylikirjoitus” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 3 oppituntia.

Mitä opin oppitunnilla ”Metodien ylikirjoitus”?

Oppikaa, miten aliluokat määrittelevät yläluokan metodit uudelleen muuttaakseen tai laajentaakseen toimintaa. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.

Kuinka kauan ”Metodien ylikirjoitus”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?

Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. extends ja super
  2. Metodien ylikirjoitus
  3. Monimuotoisuus ja dynaaminen sidonta
← Takaisin: Java Academy