Junior
Čo je dedičstvo a polymorfizmus v referenčných typoch údajov?
sobes.tech AI
Odpoveď od AI
Dedičnosť je mechanizmus, ktorý umožňuje jednej triede (odvodenej triede, podtriede) dediť vlastnosti a správanie inej triedy (základnej triedy, rodičovskej triedy). To podporuje opätovné použitie kódu a vytváranie hierarchií tried.
Polymorfizmus je schopnosť objektov rôznych tried reagovať na rovnakú správu (volanie metódy) rôznym spôsobom, v závislosti od ich konkrétneho typu. V kontexte dedičnosti sa to často prejavuje prepísaním metód základnej triedy v odvodené triede.
Príklad (Java):
// Základná trieda
class Animal {
public void makeSound() {
System.out.println("Zviera vydáva zvuk");
}
}
// Odvodená trieda
class Dog extends Animal {
@Override // Prepísanie metódy
public void makeSound() {
System.out.println("Hav!");
}
}
// Odvodená trieda
class Cat extends Animal {
@Override // Prepísanie metódy
public void makeSound() {
System.out.println("Mňau!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Objekt Dog, ale referencia typu Animal
Animal myCat = new Cat(); // Objekt Cat, ale referencia typu Animal
myDog.makeSound(); // Volá metódu Dog
myCat.makeSound(); // Volá metódu Cat
}
}
V tomto príklade:
- Dedičnosť: Triedy
DogaCatdedičia odAnimal. - Polymorfizmus: Premenné
myDogamyCatodkazujú na objektyDogaCatv poradí, hoci majú typAnimal. Pri volanímakeSound()sa vykoná metóda objektu, nie typu referencie.