Sembra un'interfaccia di classe astratta, ma per i principianti, OOP è un po 'confuso. In sintesi, la classe astratta è solo un'interfaccia, ovviamente, senza alcuna implementazione, ma hanno una buona dose di differenze. Sebbene la classe astratta possa essere eseguita parzialmente o completamente, l'interfaccia deve essere completa. Bene, la differenza più importante tra loro è che la classe astratta può avere un'esecuzione personalizzata, mentre l'interfaccia è solo una descrizione dei metodi che coinvolgono la dichiarazione del membro. Diamo un'occhiata più da vicino agli aspetti teorici di entrambi.

Che cos'è una classe di riepilogo?

La classe astratta è un tipo speciale di classe che è la base per altre classi e non può essere spostata. La logica di implementazione di una classe astratta è fornita dalle sue classi derivate. Per rendere astratta la classe, viene utilizzato un modificatore "astratto", il che significa che alcuni requisiti mancanti devono essere soddisfatti nella classe che lo segue. Include membri sia astratti che non astratti. La classe astratta è progettata per fornire funzionalità di base che possono quindi essere scambiate e cancellate da diverse classi derivate. È utile evitare di copiare i codici. Sono molto simili alle interfacce ma hanno funzionalità aggiuntive.

Differenza tra classe astratta e interfaccia in C #.

Cos'è un'interfaccia?

A sua volta, l'interfaccia non è solo una classe che contiene firme funzionali. Questa è un'abitudine insoddisfatta. In generale, questa è solo una descrizione dei metodi che prevedono la dichiarazione dei membri. È una shell vuota, non inclusa l'implementazione dei suoi membri. È come una classe base astratta, ma contiene solo membri astratti come metodi, eventi, indici, caratteristiche e altro. Inoltre, una classe può implementare più interfacce, ma solo una classe può ereditare solo una classe.

Classe astratta e interfaccia: la differenza tra la classe astratta e l'interfaccia in C #.

  1. Eredità multipla: una classe può utilizzare solo una classe astratta, quindi l'ereditarietà multipla non è possibile. A sua volta, l'interfaccia può supportare più eredità, il che significa che la classe può avere un numero qualsiasi di eredità. Classe astratta e definizione dell'interfaccia in C # - Una classe astratta è un tipo di classe che può contenere specifiche che non sono state implementate in modo specifico. La logica di implementazione è supportata dalle sue classi derivate. Può avere metodi sia astratti che non astratti. L'interfaccia, a sua volta, è solo uno schema che non può fare nulla. Tecnicamente, è solo un guscio vuoto. Implementazione: una classe astratta può includere sia la definizione che la sua implementazione. Questa classe è incompleta e non può essere installata. L'interfaccia può essere solo la firma di una funzionalità senza alcun codice. Modificatori di accesso - La classe astratta può avere diversi modificatori di input, come sub, funzioni, caratteristiche, ecc., Mentre i modificatori di interfaccia non sono consentiti e tutti i metodi devono essere esplicitamente specificati. Omogeneità: la classe astratta viene utilizzata per implementare lo stesso tipo, comportamento e stato, mentre l'interfaccia è solo per le applicazioni che condividono le firme dei metodi. Dichiarazione: la classe astratta funge da classe di base per tutte le altre classi, pertanto può dichiarare o utilizzare qualsiasi variabile e non è consentito dichiarare alcuna variabile nell'interfaccia. Dichiarazione del costruttore - Una classe astratta può avere una dichiarazione del costruttore, mentre l'interfaccia non può avere una dichiarazione del costruttore. Primario e periferico: la classe astratta viene utilizzata per identificare l'identificatore di classe e può essere utilizzata per oggetti dello stesso tipo di dati. A sua volta, l'interfaccia viene utilizzata per determinare le capacità periferiche della classe. Eccellente e Background - Almeno dal punto di vista di un programmatore, la classe astratta è più funzionale e l'interfaccia è più stretta.

Classe e interfaccia di riepilogo: modulo tabella

conclusione

Qual è la differenza tra una classe astratta e un'interfaccia? Questa è probabilmente una delle domande più comuni poste in qualsiasi colloquio tecnico. Puoi trovare molte informazioni su classi e interfacce astratte in qualsiasi tutorial di C #, ma la differenza tra loro è una parte molto difficile. Puoi combinare tutte le informazioni che puoi trovare e di cui non ne hai mai abbastanza. Bene, concettualmente entrambi sono i termini più importanti nella programmazione e sono gli stessi, ma sono molto diversi in termini di funzionalità. Mentre la classe astratta è un tipo speciale di classe che funge da base per altre classi, l'interfaccia invece è solo una shell vuota con dichiarazioni dei membri.

RIFERIMENTI

  • Libertà, Jessie. Imparare C #. Sebastopol: Reeilly Media, 2002. Stampa
  • Libertà, Jessie. Imparare C #. Sebastopol: Reeilly Media, 2002. Stampa
  • Lavin, Peter. PHP orientato agli oggetti: concetti, metodi e codice. San Francisco: No Starch Press, 2006 stampare
  • Stellman, Andrew e Jennifer Green. L'inizio del primo C #. Calcutta: Shroff editori e distributori, 2008. Stampa
  • "Credito immagine: https://stackoverflow.com/questions/2570814/when-to-use-abstract-classes"