Sobes.tech
Middle

Mi az öröklődés és a polimorfizmus a referencia típusú adatok kontextusában?

sobes.tech MI

Válasz az MI-től

Öröklődés - ez egy mechanizmus, amely lehetővé teszi, hogy egy új osztályt (származtatott, leány) hozzunk létre, amely örökli egy meglévő osztály (alap, szülő) mezőit és metódusait. Ez elősegíti a kód újrafelhasználását és osztályhierarchiák létrehozását.

A polimorfizmus az a képesség, hogy különböző osztályok objektumai egységesen viselkedjenek vagy különböző viselkedést mutassanak ugyanazon metódus hívásakor. Két fő típusa van: statikus (metódus túlterhelés) és dinamikus (metódus felülírás).

Referencia típusok kontextusában az öröklődés lehetővé teszi, hogy egy alap osztály változója egy származtatott osztály objektumára hivatkozhasson. Ebben az esetben a polimorfizmus abból nyilvánul meg, hogy ilyen változó hívásakor a tényleges objektum típusának megfelelő verzió fut le, nem a referencia típusának (dinamikus polimorfizmus).

Példa Java nyelven:

// Alap osztály
class Animal {
    public void makeSound() {
        System.out.println("Hangot ad ki");
    }
}

// Származtatott osztály 1
class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Vau-vau");
    }
}

// Származtatott osztály 2
class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Miau-miau");
    }
}

class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Animal típusú változó, amely Dog objektumra hivatkozik
        Animal myCat = new Cat(); // Animal típusú változó, amely Cat objektumra hivatkozik

        myDog.makeSound(); // A Dog metódusát hívja (polimorfizmus)
        myCat.makeSound(); // A Cat metódusát hívja (polimorfizmus)
    }
}

Ebben a példában a myDog és myCat referencia típusai Animal, de a polimorfizmusnak köszönhetően a makeSound() hívásakor a Dog és Cat megfelelő implementációja fut le.