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

  • comparações populares: Diferença entre Momento e Torque

    Diferença entre Momento e Torque

    Diferença Chave: Torque (momento ou momento da força), a palavra foi derivada do latim que significa "torcer". É uma tendência que mede a quantidade de força que atua sobre um corpo para girá-lo em torno de um pivô ou eixo. Momentum é uma propriedade possuída por objetos em movimento e é diretamente proporcional à massa e velocidade do corpo. Pode ser
  • comparações populares: Diferença entre ervilhas e feijões

    Diferença entre ervilhas e feijões

    Diferença chave: Os feijões são vagens ou sementes de plantas grandes dos vários gêneros da família Fabaceae (também conhecida como Leguminosae). Embora de acordo com a língua inglesa, 'feijão' também se refere a algumas outras sementes ou órgãos (vagens), que fazem uma semelhança com sementes de leguminosas ou vagens. As ervilhas
  • comparações populares: Diferença entre o Samsung Galaxy Note 3 e o Note 2

    Diferença entre o Samsung Galaxy Note 3 e o Note 2

    Diferença chave: o Samsung Galaxy Note 3 é o smartphone mais recente da Samsung Corporation. Foi revelado em 4 de setembro de 2013, no IFA Berlin com o Galaxy Gear, um relógio inteligente que deve funcionar como um dispositivo complementar para os telefones Galaxy. O Galaxy Note 3 precede a Nota 2. O
  • comparações populares: Diferença entre Excluir e Apagar

    Diferença entre Excluir e Apagar

    Diferença chave: Apagar refere-se à capacidade de remover algo de um determinado local. Uma vez apagada, desaparece da existência. Apagar refere-se a remover arquivos de um lugar, mas ainda está lá em outro lugar. Os termos 'delete' e 'erase' são considerados como os mesmos em linguagem falada e são comumente usados ​​de maneira intercambiável. Quando nos
  • comparações populares: Diferença entre ricos e pobres

    Diferença entre ricos e pobres

    Diferença chave: os ricos têm dinheiro e riqueza; portanto, eles podem se dar ao luxo de gastar frivolamente, a não ser gastar em suas necessidades básicas, como comida, roupas e abrigo. Os pobres, por outro lado, carecem de dinheiro e, portanto, lutam para satisfazer suas necessidades e demandas básicas. O t
  • comparações populares: Diferença entre Permutação e Combinação

    Diferença entre Permutação e Combinação

    Diferença chave : Permutação e Combinação são conceitos matemáticos. São formas diferentes em que os objetos podem ser selecionados de um conjunto para formar subconjuntos. Essa seleção de subconjuntos é chamada de permutação quando a ordem de seleção é um fator e uma combinação quando o pedido não é um fator. Permutações e comb
  • comparações populares: Diferença entre Lipstick e Lip Gloss

    Diferença entre Lipstick e Lip Gloss

    Diferença chave: Lipstick e Lip Gloss são os dois produtos cosméticos que são aplicados nos lábios. A diferença básica entre os dois produtos é que o batom contém cera com óleos, antioxidantes e emolientes, enquanto o brilho labial é um gel macio ou líquido, que não contém cera. Assim que alguém fala sobre batom ou gloss, imagens de lábios coloridos e brilhantes vêm à mente. Lipstick e lip g
  • comparações populares: Diferença entre fazer e faz

    Diferença entre fazer e faz

    Diferença chave: Tanto 'fazer' quanto 'fazer' são conjugações do verbo 'fazer'. 'Do' é usado na primeira e segunda pessoa do singular e plural e na terceira pessoa do plural. 'Does' é usado na terceira pessoa do singular. Ambos 'do' e 'does' são conjugações do verbo 'fazer'. 'Fa
  • comparações populares: Diferença entre SBI e ICICI

    Diferença entre SBI e ICICI

    Diferença chave: o SBI é o maior e mais antigo banco da Índia. ICICI é relativamente novo. A SBI é estatal e operada, a ICICI é de propriedade privada. O Banco do Estado da Índia (SBI) e o ICICI Bank são os dois maiores bancos da Índia, respectivamente. Eles são seguidos por seus concorrentes, o Banco Nacional de Punjab e o Banco HDFC. O SBI é

Escolha Do Editor

Diferença entre o iOS 8 e o iOS 9

Diferença chave: o iOS 8 foi apresentado ao mundo em junho de 2014 e foi lançado no mesmo dia. O iOS8 oferecia algumas atualizações significativas em relação ao iOS mais antigo, mas ainda estava atrelado a um iOS problemático por causa de seus muitos bugs. O iOS 9 oferecia alguns recursos novos e também incorporava os recursos que eram oferecidos com o iOS8. O iOS