Junior
Kas yra paveldėjimas ir polimorfizmas nuorodų duomenų tipuose?
sobes.tech AI
Atsakymas iš AI
Paveldėjimas yra mechanizmas, leidžiantis vienai klasei (paveldėjimo klasei, vaikų klasei) paveldėti savybes ir elgesį iš kitos klasės (pagrindinės, tėvų klasės). Tai skatina kodo pakartotinį naudojimą ir klasių hierarchijų kūrimą.
Polimorfizmas yra objekto iš skirtingų klasių gebėjimas reaguoti į tą patį pranešimą (metodo kvietimą) skirtingai, priklausomai nuo jų konkretaus tipo. Paveldėjimo kontekste tai dažnai pasireiškia per pagrindinės klasės metodų perrašymą vaikų klasėje.
Pavyzdys (Java):
// Pagrindinė klasė
class Animal {
public void makeSound() {
System.out.println("Gyvūnas skleidžia garsą");
}
}
// Vaikų klasė
class Dog extends Animal {
@Override // Metodo perrašymas
public void makeSound() {
System.out.println("Au!");
}
}
// Vaikų klasė
class Cat extends Animal {
@Override // Metodo perrašymas
public void makeSound() {
System.out.println("Miau!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Objektas Dog, bet nuoroda į Animal
Animal myCat = new Cat(); // Objektas Cat, bet nuoroda į Animal
myDog.makeSound(); // Iškviečia Dog metodą
myCat.makeSound(); // Iškviečia Cat metodą
}
}
Šiame pavyzdyje:
- Paveldėjimas: Klasės
DogirCatpaveldi išAnimal. - Polimorfizmas: Kintamieji
myDogirmyCatnurodo įDogirCatobjektus atitinkamai, nors jų tipas yraAnimal. Kai kviečiamamakeSound(), vykdomas objekto metodas, o ne nuorodos tipas.