Acho que a aula ficou desatualizada. Não é mais preciso declarar o método da classe base como 'virtual' para que ele possa ser repetido em outra classe; tb é possível fazer alterações nesse método nas classes derivadas sem usar 'override'. Nesse caso, apenas surge um aviso falando que o novo método oculta o que foi herdado (mas compila normalmente)
Vou tomar a liberdade de incluir algumas informações adicionais ao conteúdo: Métodos em herança Conceitualmente a palavra chave virtual representa métodos que podem ser sobrescritos nas classes herdeiras, mas isso não é obrigatório e o método pode ser chamado normalmente mesmo sem a sobrescrita! Sintaxes comuns para declaração de métodos nesse contexto e esclarecimentos: virtual acessibilidade retorno nome(){} // método da pai que pode ou não ser alterado nas filhas override acessibilidade retorno nome(){} // método da filha necessário que haja diferenças entre as implementações dos métodos acessibilidade new retorno nome(){} // método que utiliza a implementação da superclasse imediatamente acima da atual virtual acessibilidade new retorno nome(){} //método aplicado em uma classe de nível intermediário para repassar o método da superclasse imediatamente acima da atual para a próxima. Pega a pai implementação do método da avô e repassa para a neta, que geralmente é quem a sobrescreve. Att Robson
resumindo, o virtual serve so pra fazer override, enquanto que no java vc pode usar o override sem precisar de virutal (ate pq nao existe em java). enfim sempre me confundi nisso, pois estudei mais o java
como ele vem da base, para a herdada, acredito que vai ser impresso o resultado da derivada 1 porque ele vai passar pela base com um valor e quando chegar na derivada 1 ele será sobescrito.
As aulas até o momento estão muito boas, estou tendo uma grande compreensão da linguagem c#. Estava conversando com a minha esposa sobre Docker.... é possível que o Sr. faça um vídeo comentando/mostrando a aplicação do Docker em códigos/programas c#?
Perdi o ritmo no fim de semana, a cá estou de volta para seguir na #MaratonaCFB !!!
Merece um prêmio por esse trabalho incrível.
Acho que a aula ficou desatualizada. Não é mais preciso declarar o método da classe base como 'virtual' para que ele possa ser repetido em outra classe; tb é possível fazer alterações nesse método nas classes derivadas sem usar 'override'. Nesse caso, apenas surge um aviso falando que o novo método oculta o que foi herdado (mas compila normalmente)
Vou tomar a liberdade de incluir algumas informações adicionais ao conteúdo:
Métodos em herança
Conceitualmente a palavra chave virtual representa métodos que podem ser sobrescritos nas classes herdeiras, mas isso não é obrigatório e o método pode ser chamado normalmente mesmo sem a sobrescrita!
Sintaxes comuns para declaração de métodos nesse contexto e esclarecimentos:
virtual acessibilidade retorno nome(){} // método da pai que pode ou não ser alterado nas filhas
override acessibilidade retorno nome(){} // método da filha necessário que haja diferenças entre as implementações dos métodos
acessibilidade new retorno nome(){} // método que utiliza a implementação da superclasse imediatamente acima da atual
virtual acessibilidade new retorno nome(){} //método aplicado em uma classe de nível intermediário para repassar o método da superclasse imediatamente acima da atual para a próxima. Pega a pai implementação do método da avô e repassa para a neta, que geralmente é quem a sobrescreve.
Att Robson
resumindo, o virtual serve so pra fazer override, enquanto que no java vc pode usar o override sem precisar de virutal (ate pq nao existe em java).
enfim sempre me confundi nisso, pois estudei mais o java
muito show, like merecido
ótima explicação muito obrigado (sempre apanhei nessa parte)
como ele vem da base, para a herdada, acredito que vai ser impresso o resultado da derivada 1
porque ele vai passar pela base com um valor e quando chegar na derivada 1 ele será sobescrito.
Ótima aula Professor !!!
Amigo fala algo sobre o banco de dados, criar colocar no meu projeto e suas aulas são show
Até que enfim, polimorfismo em tempo de execução.
As aulas até o momento estão muito boas, estou tendo uma grande compreensão da linguagem c#. Estava conversando com a minha esposa sobre Docker.... é possível que o Sr. faça um vídeo comentando/mostrando a aplicação do Docker em códigos/programas c#?
👍👍👍
Muito bom!
Na minha opinião, acho que vai ser impresso Base e depois Derivada 1, ou seja os dois
O ruim é qnd o video acaba
Isso é o mesmo que polimorfismo?
10:00 não precisa definir a variável como "Ref", pode nomear normalmente como qualquer variável que não vai dar erro.
então é tipo abstract só que não precisa transformar a classe toda em abstract?
não vi diferença em usar o Ref
é prq essa referencia chama o método como se ele ñ fosse um método herdado é isso?
Base
CFB cursos ou alguem pode me ajudar em um pequeno codigo aqui em C#, to com uma pequena duvida.
diz qual é o problema amigo!
derivada 2
eu disse derivada 2 pensando que a 2 tbm tinha o metodo sobrescrito
acho que Base
kkkkkkkk ah so. eu nem me toquei que tava no derivada 2
visto
intendi.... no meu codigo aqui que eu escrevi outro nome... o segundo ira subescrever o primeiro....