Monimuotoisuus ja dynaaminen sidonta
Ymmärtäkää monimuotoisuus: yksi rajapinta, monta toteutusta. Oppikaa dynaaminen sidonta, jossa suoritettava metodi määräytyy oliotyypin perusteella.
Monimuotoisuus ja dynaaminen sidonta on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/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ä
Polymorfismi tarkoittaa, että yksi viitetyyppi voi viitata eri aliluokkien olioihin. Kun metodia kutsutaan, oikea versio suoritetaan todellisen olion, ei muuttujan tyypin, perusteella.
Mihin tätä tarvitaan?
Näin voitte kirjoittaa joustavaa ja uudelleenkäytettävää koodia. Esimerkiksi Animal-olioiden List voi sisältää Dog- ja Cat-olioita, ja speak()-kutsu toimii oikein kummallekin. Erillisiä koodipolkuja ei tarvita.
Dynaaminen sidonta
Dynaaminen sidonta tarkoittaa, että suoritettava metodirunko valitaan ajon aikana. JVM tarkastelee metodia valitessaan todellisen olion tyyppiä, ei vain ilmoitettua tyyppiä.
Yhdenmukaiset kutsut
Polymorfismin avulla voitte käsitellä kaikkia aliluokkia samalla tavalla. Saman metodin kutsuminen kullekin oliolle toimii, ja JVM valitsee oikean version. Tuloksena on selkeämpää ja lyhyempää koodia.
Esimerkki käytännöstä
Esimerkki: Shape on yliluokka. Circle ja Square ylikirjoittavat draw()-metodin. Shape-olioiden listaa käsittelevä silmukka kutsuu draw()-metodia jokaiselle oliolle, ja oikea versio suoritetaan. Tämä on polymorfismia käytännössä.
Koodi: polymorfismin esimerkki
Koodi: Dog ja Cat ylikirjoittavat speak()-metodin. Animal-taulukko sisältää erilaisia olioita. Jokainen kutsu suorittaa automaattisesti oikean version, mikä näyttää polymorfismin toiminnassa.
public class Main {
static class Animal {
void speak() {
System.out.println("Some 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[] pets = { new Dog(), new Cat(), new Animal() };
for (Animal a : pets) {
a.speak(); // dynamic binding picks correct version
}
}
}
Polymorfismin tarkistus
Pikatarkistus: Mitä polymorfismi antaa tehdä Javassa?
Kertaus
Kertaus: Polymorfismi tarkoittaa yhtä viitettä ja monia muotoja. Dynaaminen sidonta valitsee metodin ajon aikana, mikä tekee koodista joustavaa ja selkeää.
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 ”Monimuotoisuus ja dynaaminen sidonta” ilmainen?
Kyllä – oppitunnin ”Monimuotoisuus ja dynaaminen sidonta” 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 ”Monimuotoisuus ja dynaaminen sidonta”?
Ymmärtäkää monimuotoisuus: yksi rajapinta, monta toteutusta. Oppikaa dynaaminen sidonta, jossa suoritettava metodi määräytyy oliotyypin perusteella. 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 3/3.
Kuinka kauan ”Monimuotoisuus ja dynaaminen sidonta”-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