Metodien ylikirjoitus
Oppikaa, miten aliluokat määrittelevät yläluokan metodit uudelleen muuttaakseen tai laajentaakseen toimintaa.
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.
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
- extends ja super
- Metodien ylikirjoitus
- Monimuotoisuus ja dynaaminen sidonta