Статический Vs. Динамическое связывание в Java
В настоящее время я делаю задание для одного из моих классов, и в нем я должен привести примеры, используя синтаксис 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
использует статическое связывание, но я не уверен, чтоПочему это считается статической привязкой.
До сих пор ни один из источников, которые я видел, не смог объяснить это так, чтобы я мог следить.