Sobes.tech
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
    }
}