O que é método virtual em C#
Os métodos virtuais em C# são métodos declarados em uma classe base e podem ser substituídos por classes derivadas. Em outras palavras, um método virtual é um método que pode ser redefinido em uma subclasse, aqui está a sintaxe:
vazio virtual públicoA palavra -chave virtual indica que esse método pode ser substituído por uma classe derivada e quando uma classe derivada substitui um método virtual, fornece sua própria implementação do método.
Para substituir um método virtual em uma classe derivada, você inclui a palavra -chave de substituição na assinatura do método e abaixo é a sintaxe:
Substituição pública vaziaA palavra -chave de substituição indica que esse método está substituindo um método virtual na classe pai. Aqui está um exemplo de código de código que demonstra o uso de métodos virtuais em C#:
usando o sistema;Neste exemplo, temos uma classe base chamada cálculo com um método virtual chamado Add que simplesmente adiciona dois números inteiros juntos. Também temos uma classe derivada chamada CustomCalculation que substitui o método ADD, mas somente quando a soma dos dois números é maior que 10.
No método de adição substituído, verificamos se x ou y é maior que 10. Se essa condição for verdadeira, retornamos a diferença entre x e y e se a condição for falsa, chamamos a implementação base do método Add usando a palavra -chave base.
No método principal, criamos um objeto de cálculo e um objeto CustomCalculation. Primeiro, chamamos o método de adição virtual no objeto de cálculo base, passando em 5 e 7 como argumentos. Isso deve resultar em uma soma de 12 e, em seguida. Isso deve resultar em uma diferença de 5, uma vez que a soma dos dois números é maior que 10.
Como você pode ver, o método de adição substituído na classe CustomCalculation é chamado apenas quando a condição é falsa. Quando a condição é verdadeira, o método substituído fornece uma implementação diferente do método ADD que subtraia o segundo número desde o primeiro, abaixo é a saída do código:
Conclusão
O método virtual em C# fornece uma maneira de as aulas definirem métodos que podem ser personalizados por classes derivadas. Ao marcar um método como virtual, você permite que classes derivadas forneçam sua própria implementação do método e dele é uma característica poderosa da programação orientada a objetos que permite maior flexibilidade e reutilização no código.