Junior
Кога се случва презаписването на метод (overriding) в програмирането?
sobes.tech AI
Отговор от AI
Преопределянето на метода се случва при наследяване, когато подклас предоставя своя собствена реализация на вече дефиниран в родителския клас метод. Сигнатурата на метода (име, тип на връщане и брой/типове аргументи) трябва да съвпада с тази на метода в родителския клас. Това позволява да работи полиморфизмът: обект от подклас, използван като обект от родителския клас, извиква своята специфична реализация на метода.
Примери за използване:
- Промяна на логиката на наследеното поведение.
- Предоставяне на специфична за подклас реализация на общ интерфейс.
Ключови моменти:
- Необходим е отношение е-един (наследяване).
- Сигнатурата на метода трябва да съвпада.
- Модификаторът за достъп може да бъде същият или по-малко строг, отколкото при родителския метод.
- Не може да се препише
finalилиstaticметоди (в повечето езици).
// Пример на Java
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(); // Изход: Га! (преопределеният метод се извиква)
# Пример в Python
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() # Изход: Га!