Sobes.tech
Junior — Middle

Cum se deosebește o suprasarcină de metod de suprascriere în programarea orientată pe obiecte?

sobes.tech AI

Răspuns de la AI

Supraincarcarea metodei (overloading) și suprascrierea metodei (overriding) sunt concepte diferite în programarea orientată pe obiecte:

  • Supraincarcarea metodei: existența în aceeași clasă a mai multor metode cu același nume, dar cu parametri diferiți (tip, număr). Acest lucru permite apelarea metodei cu argumente diferite.

  • Suprascrierea metodei: atunci când o subclasă oferă propria sa implementare a unei metode deja definite în clasa de bază cu aceeași semnătură (nume și parametri). Acest lucru permite modificarea comportamentului metodei pentru subclasă.

Exemplu în Java:

class Animal {
    void sound() {
        System.out.println("Unele sunete");
    }

    void sound(String mood) { // supraincarcare
        System.out.println("Sunet când " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // suprascriere
        System.out.println("Lătrat");
    }
}

Aici, sound() în clasa Dog suprascrie metoda clasei de bază, iar sound(String mood) este o supraincarcare a metodei în aceeași clasă Animal.