1
resposta

Por baixo dos panos

Eu queria entender porque o C# considera o método da classe filha, sendo que toda classe ContaCorrente é uma class Conta. Como não há a combinação virtual + override, o que imagino que aconteceria é um erro. Se não ocorre um erro e o método da classe filha é utilizado, o uso das palavras reservadas não seria meio desnecessário? Se não preciso colocar override pra ter como retorno a utilização do método filho, pra que serve então? Ou estou enganando e o C# executa os dois métodos?

1 resposta

Boa irmão Sua pergunta ficou um pouco confusa, mas vou tentar explicar o que entendi dela, se for algo diferente por favor me informe que tento melhorar a resposta;

Uma classe Filha pode apontar para um classe Pai

Ex

Mamifero humano = new Humano();
Mamifero cachorro = new Cachorro();

No exemplo a cima ambas as varia veis a serem chamadas dessa forma só podem usar os métodos que estão escritos na Classe Mamífero.

Ex

humano.Mamar();
cachorro.Respirar();

Porem caso ela seja devolvida novamente para uma classe menos Genérica poderá voltar a usar os métodos da Classe menos Genérica

Ex

Humano humano2 = humano as Humano;
Cachorro cachorro2 = cachorro as Cachorro;

humano2.Falar();
cachorro2.Latir();

Nessa caso será necessário fazer o cast explicito garantindo que você sabe que aquela variável tem uma classe menos genérica que poderá ser Usada, caso de fato a variável não corresponda a aquela classe Menos genérica você vai ter uma Exception ao tentar rodar algum item dela.