Sobes.tech
Junior — Middle

Kuidas eristada meetodi ülekoormamist ja selle ülekirjutamist objektorienteeritud programmeerimises?

sobes.tech AI

Vastus AI-lt

Meetodi ülekoormamine (overloading) ja meetodi ülekirjutamine (overriding) on objektorienteeritud programmeerimises erinevad kontseptsioonid:

  • Meetodi ülekoormamine (overloading): ühes klassis on mitu meetodit sama nimega, kuid erinevate parameetritega (tüüp, arv). See võimaldab kutsuda meetodit erinevate argumentidega.

  • Meetodi ülekirjutamine (overriding): kui alamklass pakub oma rakendust juba määratletud meetodile, mille signatuur (nimi ja parameetrid) on sama, mis baasklassil. See võimaldab muuta meetodi käitumist alamklassis.

Näide Java keeles:

class Animal {
    void sound() {
        System.out.println("Mõni hääl");
    }

    void sound(String mood) { // ülekoormamine
        System.out.println("Hääl kui " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // ülekirjutamine
        System.out.println("Haugumine");
    }
}

Siin ülekirjutab sound() Dog klassis baasklassi meetodi, ja sound(String mood) on sama klassi ülekoormamine.