Diferença entre o método virtual e o abstrato

Diferença chave: Métodos abstratos são os métodos que são declarados, mas não possuem nenhuma implementação. Métodos virtuais são usados ​​para uma implementação do polimorfismo baseado em tipo. A classe derivada tem a flexibilidade de reimplementar o método virtual da classe base usando a palavra-chave 'override'.

Em C #, a palavra-chave abstract pode ser usada com classes e métodos. Métodos abstratos são aqueles métodos que carecem de qualquer forma de implementação. No entanto, a lógica de implementação é obtida pelas classes não abstratas derivadas delas. Isso é conseguido substituindo esse método. Devido à ausência de implementação real, o corpo do método permanece vazio. É importante notar que a declaração de um método abstrato só é possível em uma classe abstrata. As classes que não podem ser inicializadas são conhecidas como classes abstratas. Uma classe que herda de uma classe abstrata deve implementar todos os métodos declarados como abstratos na classe abstrata.

Por exemplo -

classe abstrata pública exampleAbstractClass

{

public abstract void exampleabstractMethod ();

public virtual void nonAbstractMethod ()

{

Console.WriteLine ("Implementação é definida no método");

}

class normalNonAbstractClass: exampleAbstractClass

{

substituição pública void exampleabstractMethod ()

{

Console.WriteLine ("Overriding the exampleabstractMethod da classe exampleAbstractClass");

}

}

Virtual também é uma palavra-chave associada à modificação de um método, propriedade, indexador ou declaração de evento. O uso dessa palavra-chave permite a modificação da entidade declarada em uma classe derivada. Neste exemplo, a classe derivada substituiu o método virtual declarado na classe base.

base da classe

{

Teste void virtual público ()

{

Console.WriteLine ("Base.Test");

}

}

class Derived: Base

{

substituição pública void Test ()

{

Console.WriteLine ("Derived.Test");

}

}

Métodos virtuais são usados ​​para uma implementação do polimorfismo baseado em tipo. A classe derivada tem a flexibilidade de reimplementar o método virtual da classe base usando a palavra-chave override. O virtual e o abstrato não podem ser usados ​​junto com modificadores estáticos ou virtuais ou de substituição.

Comparação entre o Método Virtual e o Abstract:

Método Virtual

Método abstrato

Definição

Métodos virtuais são usados ​​para uma implementação do polimorfismo baseado em tipo.

Métodos abstratos são os métodos que são declarados, mas não possuem nenhuma implementação.

Implementação

Sim, pode ter implementação

Não, não pode ter nenhuma implementação

Precisa ser substituído

Não é obrigatória

Obrigatório

Palavra-chave usada para distingui-lo de outros tipos de métodos

Virtual

Abstrato

Classe

Classe contendo o método virtual pode ser instanciada.

Classe contendo método abstrato não pode ser instanciada. Só pode ser herdado.

Escopo

Escopo do método virtual apenas para membros.

Escopo do método abstrato para membros e classes.

Método a ser executado (tipo de classe base-objeto)

A implementação pai será chamada apenas no caso em que nenhuma implementação é fornecida na classe concreta.

Implementação concreta

Método a ser executado (tipo de classe objeto concreto)

Implementação concreta

Implementação concreta

Recomendado

Artigos Relacionados

  • diferença entre: Diferença entre tensão e diferença de potencial

    Diferença entre tensão e diferença de potencial

    Diferença chave: A tensão é o potencial elétrico entre dois pontos diferentes. Também poderia ser usado para se referir à diferença na energia potencial elétrica de uma carga de teste unitário transportada entre dois pontos. A diferença de potencial elétrico é igual à tensão. Há muitas palavras na língua inglesa que têm muitos termos diferentes que se referem à mesma coisa, dependendo do cenário em que é usado. Esses termos difer
  • diferença entre: Diferença entre gaivota e albatroz

    Diferença entre gaivota e albatroz

    Diferença chave: As gaivotas pertencem à família Laridae do reino Animalia. Eles estão associados a ter corpos pesados, asas longas, pescoços moderadamente longos e pernas longas com pés cheios de membranas. Os albatrozes são uma das maiores aves voadoras que existem hoje. Eles pertencem à Ordem Procellariiformes e à Família Diomedeidae. Albatros
  • diferença entre: Diferença entre atualização e atualização

    Diferença entre atualização e atualização

    Diferença chave: a atualização pode significar duas coisas diferentes, pode se referir a uma versão mais recente do produto ou pode se referir a um produto completamente novo que é mais recente que o produto mais antigo. O termo atualização é diferente; Refere-se a fazer alterações no mesmo programa. Signific
  • diferença entre: Diferença entre Pesquisas e Pesquisas

    Diferença entre Pesquisas e Pesquisas

    Diferença chave: Pesquisas e pesquisas são dois métodos diferentes que podem ser usados ​​para obter informações. Eles são geralmente utilizados pelos pesquisadores para avaliar opiniões e receber feedback. Essencialmente, a principal diferença entre os dois é o fato de que uma pesquisa é pequena, simples e rápida. Considerando
  • diferença entre: Diferença entre Legislação e Legislação

    Diferença entre Legislação e Legislação

    Diferença chave: Leis são na verdade regras e diretrizes que são estabelecidas pelas instituições sociais para governar o comportamento. Essas leis são feitas por funcionários do governo que, em alguns países, são eleitos pelo público para representar seus pontos de vista. Em termos simples, as leis são basicamente coisas que uma pessoa pode e não pode fazer. Legislação
  • diferença entre: Diferença entre o Nokia Lumia 520 e Micromax A116 Canvas HD

    Diferença entre o Nokia Lumia 520 e Micromax A116 Canvas HD

    Diferença chave: O Nokia Lumia 520 é um smartphone touchscreen capacitivo IPS de 4 polegadas que oferece tela de 480x800 pixels, que oferece aproximadamente 233 ppi. O telefone vem com 8 GB de memória interna que pode ser expandida até 64 GB. O telefone oferece 1 GHz no seu Snapdragon dual-core S4 e apenas 512 MB de RAM, o que é um pouco decepcionante. O M
  • diferença entre: Diferença entre voar e subir

    Diferença entre voar e subir

    Diferença chave: Voar é algo que é feito por pássaros, aviões e / ou Superman. Pense em como essas coisas se movem no ar. Eles têm propósito, direção; eles têm controle sobre seus movimentos. Eles podem ir para onde querem ou para onde devem ir, ou seja, do ponto A ao ponto B. Subir é um estado de voo exercido por muitas aves diferentes. Você já v
  • diferença entre: Diferença entre o Microsoft Surface RT e o Nexus 7

    Diferença entre o Microsoft Surface RT e o Nexus 7

    Diferença chave: O Microsoft Surface RT é um tablet que possui uma tela de toque capacitiva TFT HD de 10, 6 polegadas com aproximadamente 148 ppi de densidade. A tela oferece a verdadeira taxa de proporção de 16: 9. No entanto, o sistema operacional não é compatível com programas antigos do Windows. O Nex
  • diferença entre: Diferença entre copiadora e impressora

    Diferença entre copiadora e impressora

    Diferença chave: Uma copiadora é um dispositivo de fotocópia que permite aos usuários fazer cópias duplicadas de um documento ou uma imagem, que é muito barato. As copiadoras usam tecnologia de xerografia semelhante à tecnologia usada em uma impressora a laser. A impressora é um dispositivo periférico que cria uma cópia sólida dos dados digitais representados na tela do computador. Impressor

Escolha Do Editor

Diferença entre jogo e esporte

Diferença chave: Essencialmente, um jogo é qualquer jogada estruturada que é realizada para diversão. Alguns jogos podem ser educativos também. É uma atividade recreativa. Pode envolver um ou mais jogadores. Um jogo geralmente tem objetivos, regras, desafios e interações. Um esporte, por outro lado, é uma atividade física. Tem um c