Esercitazione sulla classe astratta C #: cos'è l'astrazione con l'esempio

Sommario:

Anonim

Cos'è la classe astratta in C #?

La classe astratta non può mai essere istanziata ed è contrassegnata dalla parola chiave abstract. Una classe astratta contiene zero o più metodi astratti al suo interno. La classe astratta agisce come una classe base ed è progettata per essere ereditata da sottoclassi che implementano o sovrascrivono il suo metodo.

Impariamo la classe astratta in C # con l'esempio fornito di seguito. Di seguito è riportata la definizione di una classe chiamata "Animale". Quando viene definita la classe "Animale", non si sa nulla dell'animale, che si tratti di un cane o di un gatto. Il metodo chiamato descrizione è solo un metodo generico definito per la classe.

Ora, quando si sa cosa sarà esattamente l'Animale, creiamo un'altra classe che eredita la classe base. Se sappiamo che l'animale è in realtà un cane, creiamo la classe Dog che eredita la classe base principale. La differenza fondamentale qui è che la classe Dog non può modificare la definizione del metodo Description della classe Animal. Deve definire il proprio metodo astratto C # chiamato Dog-Description. Questo è il concetto di base delle classi astratte C #.

Vediamo la classe astratta in C # con un esempio in tempo reale su come possiamo modificare il nostro codice per includere una classe astratta C #. Si noti che non eseguiremo il codice, perché non è possibile eseguire nulla utilizzando una classe di astrazione C #.

Passaggio 1) Come primo passaggio, creiamo una classe astratta. La classe si chiamerà Tutorial e avrà un solo metodo. Tutto il codice deve essere scritto nel file Program.cs.

Spiegazione del codice: -

  1. Per prima cosa definiamo la classe astratta. Nota l'uso della parola chiave abstract. Questo è usato per denotare che la classe è una classe astratta.
  2. Successivamente, stiamo definendo il nostro metodo che non fa nulla. Il metodo deve avere la parola chiave chiamata virtual. Ciò significa che il metodo non può essere modificato dalla classe figlia. Questo è un requisito di base per qualsiasi classe astratta.

Passaggio 2) Ora aggiungiamo la nostra classe figlio. Questo codice viene aggiunto al file Program.cs.

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{abstract class Tutorial{public virtual void Set(){}}class Guru99Tutorial:Tutorial{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Guru99Tutorial pTutor=new Guru99Tutorial();pTutor.SetTutorial(1,".Net");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}

Non c'è niente di eccezionale in questo codice. Definiamo semplicemente una classe chiamata "Guru99Tutorial" che eredita la classe astratta Tutorial. Definiamo quindi gli stessi metodi che abbiamo utilizzato in precedenza.

Nota: qui non è possibile modificare la definizione del metodo Set definito nella classe Tutorial. Nella classe Tutorial, avevamo definito un metodo chiamato 'Set' (public virtual void Set ()). Poiché il metodo faceva parte della classe astratta C #, non è consentito definire nuovamente il metodo Set nella classe Guru99Tutorial.

Sommario

  • Una classe astratta in C diesis è una classe base che ha i requisiti di base di come dovrebbe apparire una classe. Non è possibile per la classe figlia ereditare i metodi della classe base.