Junior
Mis vahe on pärandumil ja polümorfismil?
sobes.tech AI
Vastus AI-lt
Pärilusus on mehhanism, mis võimaldab klassil (järglane, alamklass) pärida teise klassi (vanem, superklass) välju ja meetodeid. See soodustab koodi korduvkasutust.
Polümorfism on võimalus kasutada sama liidest, et esitada erinevaid alusvorme. Java kontekstis tähendab see, et viiteliigi muutuja võib viidata oma tüübi või mis tahes selle alamliigi objekti. Erinevad on kompileerimise ajal toimiv polümorfism (meetodite ülekoormus) ja täitmise ajal toimiv polümorfism (meetodite ülekirjutamine).
Peamine erinevus:
- Pärilusus määrab suhted klasside vahel (vanem-laps) ja võimaldab koodi korduvkasutust.
- Polümorfism võimaldab pöörduda erinevate objektide poole ühise liidese kaudu, täites vastava meetodi sõltuvalt objekti tegelikust tüübist täitmise ajal.
Polümorfismi näide täitmise ajal:
class Animal {
public void sound() {
System.out.println("Loom teeb häält");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Haug-haug");
}
}
class Cat extends Animal {
@Override
public void sound() {
System.out.println("Miau-miau");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Polümorfism: viit tüüpi Animal viitab Dog objektile
Animal myCat = new Cat(); // Polümorfism: viit tüüpi Animal viitab Cat objektile
myDog.sound(); // Kutsub välja meetodi sound() klassist Dog
myCat.sound(); // Kutsub välja meetodi sound() klassist Cat
}
}