Sobes.tech
Back to questions
Junior — Middle
55

Можете объяснить принцип работы динамической диспетчеризации методов в объектно-ориентированных языках?

Companies where asked
AstonAston

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. Решение, какой метод вызвать, принимается во время выполнения, что обеспечивает полиморфизм и гибкость кода.