Quanto à redefinição de métodos acho que não tem muito o que discutir que é um tipo de polimorfismo.
Já para ligação tardia temos: Quando o método a ser invocado é definido durante a compilação do programa, o mecanismo de ligação prematura (early binding) é utilizado.
Para a utilização de polimorfismo, a linguagem de programação orientada a objetos deve suportar o conceito de ligação tardia (late binding), onde a definição do método que será efetivamente invocado só ocorre durante a execução do programa. O mecanismo de ligação tardia também é conhecido pelos termos dynamic binding ou run-time binding.
Em Java, todas as determinações de métodos a executar ocorrem através de ligação tardia exceto em dois casos:
métodos declarados como final não podem ser redefinidos e portanto não são passíveis de invocação polimórfica da parte de seus descendentes; e métodos declarados como private são implicitamente finais.
Fonte: http://www.dca.fee.unicamp.br/cursos/PooJava/polimorf/latebind.html