O gabarito é a letra D.
Existem dois tipos de polimorfismo que são conhecidos como sobrecarga (overload) e sobreescrita (override).
A sobrecarga (overload) consiste em permitir, dentro da mesma classe, mais de um método com o mesmo nome. Entretanto, eles necessariamente devem possuir argumentos diferentes para funcionar. A escolha de qual método irá ser chamado pelo programa principal dependerá de acordo com o seu tipo de objeto, que será tomada apenas no tempo de execução por meio de ligação tardia.
A técnica de sobreescrita (override) permite reescrever um método em uma subclasse que possua um comportamento diferente do método de mesma assinatura na superclasse. Basicamente a sobreescrita possibilita reescrever na classe filha os métodos implementados previamente na classe pai, ou seja, uma classe filha pode redefinir métodos herdados de suas descendentes, mantendo o nome e a assinatura. Na sobreescrita é necessário que os métodos tenham a mesma assinatura (tipo de retorno, nome do método, tipos e quantidades de parâmetros), mas com implementações diferentes.