Sobes.tech
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 és Cat osztályok az Animal-ból örökölnek.
  • Polimorfizmus: A myDog és myCat változók a Dog és Cat objektumokra mutatnak, annak ellenére, hogy Animal típusúak. A makeSound() hívásakor az adott objektum metódusa fut le, nem a referencia típusának.