Junior
Mi az öröklődés és polimorfizmus a referencia típusú adatokban?
sobes.tech MI
Válasz az MI-től
Az öröklődés egy olyan mechanizmus, amely lehetővé teszi, hogy egy osztály (leszármazott osztály, származtatott osztály) tulajdonságokat és viselkedést örököljön egy másik osztálytól (alap osztály, szülő osztály). Ez elősegíti a kód újrafelhasználását és osztályhierarchiák létrehozását.
A polimorfizmus azon képesség, hogy különböző osztályok példányai ugyanarra az üzenetre (metódushívásra) különböző módon reagáljanak, a konkrét típusuktól függően. Az öröklődés kontextusában ez gyakran a bázisosztály metódusainak felülírásával nyilvánul meg az leszármazott osztályban.
Példa (Java):
// Bázisosztály
class Animal {
public void makeSound() {
System.out.println("Állat hangot ad ki");
}
}
// Leszármazott osztály
class Dog extends Animal {
@Override // Metódus felülírása
public void makeSound() {
System.out.println("Vau!");
}
}
// Leszármazott osztály
class Cat extends Animal {
@Override // Metódus felülírása
public void makeSound() {
System.out.println("Miau!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Dog objektum, de Animal típusú referencia
Animal myCat = new Cat(); // Cat objektum, de Animal típusú referencia
myDog.makeSound(); // A Dog metódusát hívja
myCat.makeSound(); // A Cat metódusát hívja
}
}
Ebben a példában:
- Öröklődés: A
DogésCatosztályok azAnimal-ból örökölnek. - Polimorfizmus: A
myDogésmyCatváltozók aDogésCatobjektumokra mutatnak, annak ellenére, hogyAnimaltípusúak. AmakeSound()hívásakor az adott objektum metódusa fut le, nem a referencia típusának.