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.