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.