Sobes.tech
Junior — Middle

Kako razlikovati preopterećenje metode od njenog prepisivanja u objektno-orijentisanom programiranju?

sobes.tech АИ

Одговор од АИ

Preopterećenje metode (overloading) i prepisivanje metode (overriding) su različiti koncepti u objektno-orijentisanom programiranju:

  • Preopterećenje metode: postoji više metoda sa istim imenom u istoj klasi, ali sa različitim parametrima (tip, broj). Ovo omogućava pozivanje metode sa različitim argumentima.

  • Prepisivanje metode: kada podklasa pruža svoju implementaciju metode koja je već definisana u osnovnoj klasi sa istom potpisom (ime i parametri). Ovo omogućava promenu ponašanja metode za podklasu.

Primer u Javi:

class Animal {
    void sound() {
        System.out.println("Neki zvuk");
    }

    void sound(String mood) { // preopterećenje
        System.out.println("Zvuk kada " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // prepisivanje
        System.out.println("Lajanje");
    }
}

Ovde, sound() u klasi Dog prepisuje metodu osnovne klase, a sound(String mood) je preopterećenje metode u istoj klasi Animal.