Junior
Mi a különbség az öröklődés és a polimorfizmus között?
sobes.tech MI
Válasz az MI-től
Öröklődés — ez egy mechanizmus, amely lehetővé teszi egy osztály (származtatott osztály, alosztály) számára, hogy másik osztály (szülő, ősosztály) mezőit és metódusait örökölje. Ez elősegíti a kód újrahasznosítását.
Polimorfizmus — ez ugyanazon interfész használata különböző alapformák reprezentálására. Java kontextusában ez azt jelenti, hogy egy referencia típusú változó hivatkozhat saját típusú objektumra vagy bármelyik al-típusú objektumra. Különbséget teszünk a fordítási időben történő polimorfizmus (metódus túlterhelés) és a futási időben történő polimorfizmus (metódus felülírás) között.
Fő különbség:
- Öröklődés meghatározza a kapcsolatok között osztályokat (szülő-gyermek), és lehetővé teszi a kód újrahasznosítását.
- Polimorfizmus lehetővé teszi különböző objektumokhoz való hozzáférést közös interfészen keresztül, a tényleges objektumtípus szerint végrehajtva a megfelelő metódust futás közben.
Példa a futási időben történő polimorfizmusra:
class Animal {
public void sound() {
System.out.println("Állat hangot ad");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Vau-vau");
}
}
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(); // Polimorfizmus: Animal típusú változó, amely Dog objektumra utal
Animal myCat = new Cat(); // Polimorfizmus: Animal típusú változó, amely Cat objektumra utal
myDog.sound(); // A Dog osztály sound() metódusát hívja
myCat.sound(); // A Cat osztály sound() metódusát hívja
}
}