Sobes.tech
Junior — Middle

Hogyan különböztetjük meg a metódus túlterhelését a felülírástól az objektumorientált programozásban?

sobes.tech MI

Válasz az MI-től

A metódus túlterhelése (overloading) és a metódus felülírása (overriding) külön fogalmak az objektumorientált programozásban:

  • Metódus túlterhelése: ugyanabban a osztályban több olyan metódus létezik, amelyek ugyanazzal a névvel rendelkeznek, de különböző paraméterekkel (típus, szám). Ez lehetővé teszi, hogy különböző argumentumokkal hívjuk meg a metódust.

  • Metódus felülírása: amikor egy alosztály saját implementációt ad egy olyan metódushoz, amely már definiálva van az ősosztályban ugyanazzal a szignatúrával (név és paraméterek). Ez lehetővé teszi a metódus viselkedésének módosítását az alosztály számára.

Java példával:

class Animal {
    void sound() {
        System.out.println("Valamilyen hang");
    }

    void sound(String mood) { // túlterhelés
        System.out.println("Hang amikor " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // felülírás
        System.out.println("ugatás");
    }
}

Itt, a sound() a Dog osztályban felülírja az ősosztály metódusát, és a sound(String mood) ugyanabban az osztályban túlterhelésként van jelen.