Encadernação Estática e Encadernação Dinâmica

Estou muito confuso sobre vinculação dinâmica e vinculação estática. Eu li que determinar o tipo de um objeto em tempo de compilação é chamado de vinculação estática e determiná-lo em tempo de execução é chamado de vinculação dinâmica.

O que acontece no código abaixo:

Ligação estática ou ligação dinâmica?
Que tipo de polimorfismo isso mostra?

class Animal
{
    void eat()
    {
        System.out.println("Animal is eating");
    }
}

class Dog extends Animal
{
    void eat()
    {
        System.out.println("Dog is eating");
    }
}

public static void main(String args[])
{
    Animal a=new Animal();
    a.eat();
}

questionAnswers(6)

yourAnswerToTheQuestion