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.