Back to questions
Aston
Junior — Middle
55
Можете объяснить принцип работы динамической диспетчеризации методов в объектно-ориентированных языках?
Companies where asked
Answer from AI
sobes.tech AI
Динамическая диспетчеризация методов — это механизм, при котором выбор конкретной реализации метода происходит во время выполнения программы, а не на этапе компиляции. В объектно-ориентированных языках, таких как Java, это позволяет вызывать переопределённые методы подклассов через ссылки на базовый класс.
Пример:
class Animal {
void sound() {
System.out.println("Some sound");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("Bark");
}
}
public class Main {
public static void main(String[] args) {
Animal a = new Dog();
a.sound(); // Выведет "Bark" благодаря динамической диспетчеризации
}
}
Здесь метод sound() вызывается у объекта типа Dog, хотя переменная a имеет тип Animal. Решение, какой метод вызвать, принимается во время выполнения, что обеспечивает полиморфизм и гибкость кода.