Che cos'è la classe astratta in C#? | Definizione, proprietà ed esempi

Il termine astrazione nella programmazione si riferisce all'occultamento di informazioni non necessarie, anche se molto importanti, e al rendere visibili all'utente solo determinate chiavi o informazioni richieste. Ciò è reso possibile attraverso l'uso di classi astratte.

La classe astratta in C# è essenzialmente una classe che non consente la creazione di oggetti. "Astratto" qui è una parola chiave o un modificatore che fa sì che quella particolare classe o metodo sia astratto o limitato. È possibile accedere a una classe astratta solo tramite l'ereditarietà da una classe diversa.

Proprietà e componenti della classe astratta in C#

Ci sono alcuni fattori che devono essere presenti per avviare o accedere a una classe astratta. Sono stati elencati come segue.

  1. Una classe astratta viene utilizzata per creare una classe base a cui è possibile accedere comunemente da diverse classi derivate. Per utilizzare o implementare una classe astratta, i programmatori devono prima creare una classe derivata.
  2. La classe astratta deve quindi essere ereditata da sottoclassi, che possono anche sovrascrivere la funzione.
  3. Ogni classe astratta richiede almeno un metodo astratto.

Esempio di una classe astratta in C#

Poiché il meccanismo è complicato e comprensibile solo a chi ha familiarità con il linguaggio di programmazione, è meglio iniziare con un esempio molto semplice che aiuti a spiegare il concetto.

Supponiamo che esista una classe "Albero", con un metodo progettato esistente noto come "tipo". Nient'altro è definito e non vengono fornite altre informazioni particolari – non si conosce il tipo di albero, e nemmeno i tipi possibili.

Se è disponibile un esempio specifico di albero, viene creata una classe separata tramite l'ereditarietà della classe base, Albero. L'idea è che la nuova classe, diciamo Pine o Oak, non può effettivamente modificare il costrutto o la definizione della classe base, ovvero Tree. Deve creare una propria classe, derivata dalla classe Tree, e definire un altro metodo ereditato dalla base.

Vantaggi della classe astratta in C#

  1. Mentre le sottoclassi possono scegliere di implementare o sovrascrivere una classe astratta, possono essere apportate alcune modifiche che richiedono che una determinata funzione debba essere assolutamente implementata.
  2. C'è quindi un grande grado di flessibilità quando si progetta una classe astratta, rispetto ai quali i metodi devono essere implementati imperativamente.
  3. Il programmatore può scegliere quanti metodi astratti desidera in una classe astratta. È anche possibile scrivere il codice senza includere metodi astratti.
  4. Una classe astratta deve essere definita una sola volta ed è possibile accedervi o derivarne tutte le volte necessarie d'ora in poi.
  5. Una classe astratta è molto utile quando c'è un insieme di classi che hanno un grado di comunanza ma differiscono nella loro implementazione della classe astratta.

Svantaggi della classe astratta in C#

  1. Una classe astratta può essere aggiunta alla gerarchia delle classi solo se non esistono classi astratte già esistenti.
  2. Gli oggetti di qualsiasi classe astratta possono essere solo referenziati, mai creati.
  3. Nonostante il fatto che le classi astratte non possano essere istanziate, non consente l'uso di variabili o metodi statici.

Riferimenti

  1. https://books.google.co.in/books?hl=en&lr=&id=UbJa11wLcqYC&oi=fnd&pg=PA125&dq=Abstract+Class+in+C%23&ots=y9lmboLlHj&sig=kk5oYAJSHpmo-FyHphcAlkUh4cc&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
  2. https://books.google.co.in/books?hl=en&lr=&id=-w9ftEtwPGwC&oi=fnd&pg=PP8&dq=Abstract+Class+in+C%23&ots=XXCx6-5nlm&sig=CYfs0myaTnm1anSz4QUGcZ65uS4&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
x
2D vs 3D