Olá João!
Sem o virtual
e override
o uso do GetBonificacao()
será o do tipo que é declarado o objeto, por isso a variável robertaTeste
ficou com o método da classe Funcionario
. Neste caso foi apenas uma repetição do nome do método, tanto que o método estava sublinhado em verde.
Ao usar o virtual
e override
, aí sim ocorre o polimorfismo, tanto que no exemplo, mesmo declarando robertaTeste
como Funcionario
, é usado o GetBonificacao()
de Diretor
, pois é este o tipo da variável roberta
, ao qual foi referência para robertaTeste
.
Quanto ao exercício, o tipo é ContaCorrente
e essa classe já tem seu próprio método de CalcularTaxaAdministrativa()
que com certeza ficaria sublinhado de verde no Visual Studio. Se tivesse sido declarado como Conta
aí sim o retorno seria 1, pois não houve sobrescrita de métodos.
Bons estudos!