В настоящее время я выполняю назначение для одного из моих классов, и в нем я должен привести примеры, используя синтаксис Java, статической и динамической привязки.
Я понимаю основную концепцию, что статическая привязка происходит во время компиляции, а динамическая привязка происходит во время выполнения, но я не могу понять, как они действительно работают.
Я нашел пример статического привязки онлайн, который дает следующий пример:
public static void callEat(Animal animal) {
System.out.println("Animal is eating");
}
public static void callEat(Dog dog) {
System.out.println("Dog is eating");
}
public static void main(String args[])
{
Animal a = new Dog();
callEat(a);
}
И что это напечатает "животное есть", потому что вызов callEat
использует статическое связывание, но я не уверен, почему это считается статической привязкой.
До сих пор ни один из источников, которые я видел, не смог объяснить это таким образом, чтобы я мог следовать.