Um dos mecanismos fundamentais na programação orientada a objetos é o conceito de redefinição (ou sobrescrita ou, no termo em inglês, overriding) de métodos em classes derivadas.
A redefinição ocorre quando um método cuja assinatura já tenha sido especificada recebe uma nova definição (ou seja, um novo corpo) em uma classe derivada.
O mecanismo de redefinição, juntamante com o conceito de ligação tardia, é a chave para a utilização do polimorfismo.