Sobes.tech
Junior — Middle

Как да различим претоварването на метод от неговото презаписване в обектно-ориентираното програмиране?

sobes.tech AI

Отговор от AI

Претоварване на метод (overloading) и презаписване на метод (overriding) са различни концепции в обектно-ориентираното програмиране:

  • Претоварване на метод: наличието в една класа на няколко метода с едно и също име, но с различни параметри (тип, брой). Това позволява извикване на метода с различни аргументи.

  • Презаписване на метод: когато подклас предоставя своя собствена реализация на метод, който вече е дефиниран в базовия клас със същата сигнатура (име и параметри). Това позволява да се промени поведението на метода за подкласса.

Пример на Java:

class Animal {
    void sound() {
        System.out.println("Някакъв звук");
    }

    void sound(String mood) { // претоварване
        System.out.println("Звук когато " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // презаписване
        System.out.println("Лаене");
    }
}

Тук sound() в класа Dog презаписва метода на базовия клас, а sound(String mood) е претоварване на метода в същия клас Animal.