Junior
Mis on pärandum ja polümorfism viiteandmetüüpides?
sobes.tech AI
Vastus AI-lt
Pärilikkus on mehhanism, mis võimaldab ühel klassil (pärilikkusklass, alamklass) omandada teise klassi (baasklass, vanemklass) omadused ja käitumise. See soodustab koodi taaskasutust ja klassi hierarhiate loomist.
Polümorfism on võime erinevate klasside objektidel reageerida samale sõnumile (meetodi kutsumine) erinevalt, sõltuvalt nende konkreetset tüübist. Pärilikkuse kontekstis avaldub see sageli baasklassi meetodite ülekirjutamise kaudu alamklassides.
Näide (Java):
// Baasklass
class Animal {
public void makeSound() {
System.out.println("Loom teeb häält");
}
}
// Alamklass
class Dog extends Animal {
@Override // Meetodi ülekirjutamine
public void makeSound() {
System.out.println("Haug!");
}
}
// Alamklass
class Cat extends Animal {
@Override // Meetodi ülekirjutamine
public void makeSound() {
System.out.println("Miau!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Dog objekt, kuid viide tüübile Animal
Animal myCat = new Cat(); // Cat objekt, kuid viide tüübile Animal
myDog.makeSound(); // Kutsub välja Dog meetodi
myCat.makeSound(); // Kutsub välja Cat meetodi
}
}
Selles näites:
- Pärilikkus: Klassid
DogjaCatpärivad klassistAnimal. - Polümorfism: Muutujad
myDogjamyCatviitavad vastavaltDogjaCatobjektidele, kuigi nende tüüp onAnimal. MeetodimakeSound()kutsumisel täidetakse objekti klassi meetod, mitte viidetüüpi.