Junior
Kada dolazi do prepisivanja metode (overriding) u programiranju?
sobes.tech АИ
Одговор од АИ
Переопределение метода се дешава у наследствујењу, када подкласа пружа своју сопствену реализацију метода који је већ дефинисан у родитељској класи. Потпис метода (име, тип повратне вредности и број/тип аргумената) мора се поклапати са методом у родитељској класи. Ово омогућава рад полиморфизма: објекат подкласе, коришћен као објекат родитељске класе, позива своју специфичну реализацију метода.
Примери употребе:
- Промена логике наследеног понашања.
- Обезбеђивање специфичне за подкласу реализације за заједнички интерфејс.
Кључне тачке:
- Потребан је однос је-један (наследство).
- Потпис метода мора се поклапати.
- Модификатор приступа може бити исти или мање строги од оног у родитељској методи.
- Не може се преоптеретити
finalилиstaticметоде (у већини језика).
// Пример у Јави
class Animal {
public void makeSound() {
System.out.println("Генерички звук животиње");
}
}
class Dog extends Animal {
@Override // Анотација која указује на преоптерећење
public void makeSound() {
System.out.println("Гауу!");
}
}
// Коришћење
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Излаз: Генерички звук животиње
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Излаз: Гауу! (позива се преоптерећена метода)
# Пример у Питону
class Animal:
def make_sound(self):
print("Генерички звук животиње")
class Dog(Animal):
def make_sound(self): # Преоптерећење методе
print("Гауу!")
# Коришћење
# animal = Animal()
# animal.make_sound() # Излаз: Генерички звук животиње
#
# dog = Dog()
# dog.make_sound() # Излаз: Гауу!