Differenza tra metodo virtuale e metodo astratto

Differenza chiave: i metodi astratti sono i metodi dichiarati ma non implementati. I metodi virtuali sono utilizzati per un'implementazione del polimorfismo basato sul tipo. La classe derivata ha la flessibilità di ri-implementare il metodo virtuale della classe base usando la parola chiave 'override'.

In C #, la parola chiave astratta può essere utilizzata con entrambe le classi e metodi. I metodi astratti sono quei metodi che non hanno alcuna forma di implementazione. Tuttavia, la logica di implementazione è ottenuta dalle classi non astratte derivate da esse. Ciò si ottiene ignorando quel metodo. A causa dell'assenza dell'attuazione effettiva, il corpo del metodo rimane vuoto. È importante notare che la dichiarazione di un metodo astratto è possibile solo in una classe astratta. Le classi che non possono essere inizializzate sono conosciute come classi astratte. Una classe che eredita da una classe astratta deve implementare tutti i metodi dichiarati come astratti nella classe astratta.

Per esempio -

esempio di classe astratta pubblicaAbstractClass

{

public abstract void exampleabstractMethod ();

pubblico virtuale vuoto nonAbstractMethod ()

{

Console.WriteLine ("L'implementazione è definita nel metodo");

}

class normalNonAbstractClass: exampleAbstractClass

{

public override void exampleabstractMethod ()

{

Console.WriteLine ("Override the exampleabstractMethod of the example exampleAbstractClass");

}

}

Virtual è anche una parola chiave associata alla modifica di un metodo, proprietà, indicizzatore o dichiarazione di eventi. L'uso di questa parola chiave consente la modifica dell'entità dichiarata in una classe derivata. In questo esempio, la classe derivata ha sovrascritto il metodo virtuale dichiarato nella classe base.

Base di classe

{

public virtual void Test ()

{

Console.WriteLine ( "Base.test");

}

}

classe Derivato: base

{

public override void Test ()

{

Console.WriteLine ( "Derived.Test");

}

}

I metodi virtuali sono utilizzati per un'implementazione del polimorfismo basato sul tipo. La classe derivata ha la flessibilità di reimplementare il metodo virtuale della classe base utilizzando la parola chiave override. Sia virtuale che astratto non possono essere utilizzati insieme ai modificatori statici o virtuali o di modifica.

Confronto tra metodo virtuale e astratto:

Metodo virtuale

Metodo astratto

Definizione

I metodi virtuali sono utilizzati per un'implementazione del polimorfismo basato sul tipo.

I metodi astratti sono i metodi dichiarati ma non hanno alcuna implementazione.

Implementazione

Sì, può avere implementazione

No, non può avere alcuna implementazione

Dev'essere sovrascritto

Non compulsivo

obbligatorio

Parola chiave utilizzata per distinguerlo da altri tipi di metodi

Virtuale

Astratto

Classe

La classe contenente il metodo virtuale può essere istanziata.

La classe contenente il metodo astratto non può essere istanziata. Può essere ereditato solo

Scopo

Ambito del metodo virtuale solo per i membri.

Ambito del metodo astratto per membri e classi.

Metodo da eseguire (tipo classe oggetto-base)

L'implementazione del genitore verrà chiamata solo nel caso in cui non venga fornita alcuna implementazione nella classe concreta.

Implementazione concreta

Metodo da eseguire (tipo di classe oggetto-calcestruzzo)

Implementazione concreta

Implementazione concreta

Raccomandato

Articoli Correlati

  • differenza tra: Differenza tra Paese e Stato

    Differenza tra Paese e Stato

    Differenza fondamentale: la principale differenza tra Paese e Stato è che il termine "Paese" si riferisce a una grande nazione con il proprio governo e l'economia, mentre il termine "stato" si riferisce a una vasta area governativa all'interno del paese. "Stato" può talvolta anche essere usato per riferirsi all'intero paese.
  • differenza tra: Differenza tra accento americano e britannico

    Differenza tra accento americano e britannico

    Differenza chiave: l'accento americano è più facile da capire rispetto all'accento britannico. È anche l'accento più comunemente usato nel mondo; tuttavia, l'accento britannico è più idolatrato e considerato sexy. Gli americani e gli inglesi parlano entrambi inglese, ma quando parlano hanno un suono completamente diverso. Ciò
  • differenza tra: Differenza tra Alcatel One Touch Idol Ultra e Samsung Galaxy S4

    Differenza tra Alcatel One Touch Idol Ultra e Samsung Galaxy S4

    Differenza fondamentale: Alcatel One Touch Idol Ultra è dotato di un touchscreen capacitivo AMOLED HD da 4, 65 pollici con una risoluzione di 720 x 1280 pixel. Il telefono è alimentato da un processore Dual-core da 1, 2 GHz su un MediaTek MTK 6577 e 1 GB di RAM. Il telefono ha una larghezza di 6, 45 mm, che ha portato l'azienda a pubblicizzarlo come lo smartphone più sottile sul mercato. S
  • differenza tra: Differenza tra Nokia Lumia 720 e XOLO X1000

    Differenza tra Nokia Lumia 720 e XOLO X1000

    Differenza chiave: Nokia Lumia 720 è uno dei telefoni più recenti che sono simili al suo ammiraglia Lumia 920. Il Lumia 720 è dotato di processore Snapdragon S4 dual core da 1 GHz con 512 MB di RAM e 8 GB di spazio di archiviazione interno che può essere aggiornato a 64 GB. Il telefono è disponibile con una fotocamera primaria da 6, 7 ​​MP con ottica Carl Zeiss, autofocus e flash LED. Ha anch
  • differenza tra: Differenza tra JRE e SDK

    Differenza tra JRE e SDK

    Differenza fondamentale: JRE sta per Java Runtime Environment. È l'ambiente di esecuzione Java di Oracle che viene utilizzato per eseguire bytecode Java. D'altra parte, l'SDK o il kit di sviluppo del software è un insieme di strumenti di sviluppo del software. Questi sono principalmente utilizzati per creare varie applicazioni.
  • differenza tra: Differenza tra controllo e controllo

    Differenza tra controllo e controllo

    Differenza chiave: sia Check che Check sono un tipo di documento comunemente utilizzato in Banking. Il suo scopo principale è di dire alla banca di prelevare l'importo dal conto del cassetto e di pagare tale importo al beneficiario. Il controllo è utilizzato in inglese britannico, mentre il controllo è utilizzato in inglese americano. S
  • differenza tra: Differenza tra Travelers Check e Personal Check

    Differenza tra Travelers Check e Personal Check

    Differenza chiave: i Travelers Cheques sono pezzi di carta prepagati che vengono stampati con tutte le informazioni richieste dall'emittente. Gli assegni personali sono pezzi di carta emessi dalle banche che consentono di detrarre i soldi direttamente da un account. Prima di pianificare qualsiasi vacanza, la maggiore preoccupazione che un viaggiatore o un viaggiatore incontra è la valuta.
  • differenza tra: Differenza tra HTC Butterfly e HTC One X

    Differenza tra HTC Butterfly e HTC One X

    Differenza fondamentale: HTC Butterfly è un telefono di fascia alta di HTC Corporation. L'HTC Butterfly è venduto in quattro varianti: Droid DNA; J Butterfly HTL21; Butterfly X920d; e Butterfly X920e. Sono tutti alimentati da un processore Krait quad-core da 1, 5 GHz. L'HTC Droid ha il Quadcomm MDM615m, mentre le varianti Butterfly hanno il chipset Qualcomm APQ8064.
  • differenza tra: Differenza tra ratto e criceto

    Differenza tra ratto e criceto

    Differenza chiave: un topo è un roditore di taglia media o grande, con un muso appuntito, coda lunga e senza coda e abili zampe anteriori. Un criceto è un roditore appartenente alla famiglia Cricetidae dell'ordine Rodentia. Sono piccoli di statura, sono robusti e hanno gambe corte e tozze con piedi larghi.

Scelta Del Redattore

Differenza tra Sony Xperia E e XOLO Q800

Differenza fondamentale: Sony Xperia E ed E-Dual sono due telefoni entry-level di Sony Mobile. Il telefono è dotato di un capacitivo da 3, 5 TFT con una densità di ~ 165 ppi pixel. Viene fornito con un processore Cortex-A5 Qualcomm Snapdragon da 1 GHz, un Adreno 200 GPU e 512 MB di RAM. Xolo Q800 è uno smartphone quad-core da 1.2