Junior
Кога се счита, че методът е презаписан (overriding)?
sobes.tech AI
Отговор от AI
Методът се счита за презаписан (overriding) в обектно-ориентираното програмиране, когато:
- Той е дефиниран в подклас със същото име, тип на връщане и списък с параметри (подпис) като методът в суперкласата.
- Методът в суперкласата не е
private. - Методът в подкласата няма по-строг модификатор за достъп от този в суперкласата.
- В случай на изключения, презаписаният метод не може да декларира проверяеми изключения ([checked exceptions]), които са по-общи от тези, декларирани в презаписания метод.
При извикване на презаписания метод върху обект от подклас, се изпълнява версията на метода от подклас. Това е пример за полиморфизъм по време на изпълнение.
Пример на Java:
// java
class Animal {
public void makeSound() {
System.out.println("Общ звук на животно");
}
}
class Dog extends Animal {
@Override // Анотацията @Override потвърждава, че методът е презаписан
public void makeSound() {
System.out.println("Гауу гауу");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Мяу");
}
}