Φροντιστήριο C# Abstract Class με Παράδειγμα: Τι είναι η Αφαίρεση;

Τι είναι η Abstract Class στην C#;

Περίληψη τάξη δεν μπορεί ποτέ να δημιουργηθεί και επισημαίνεται με τη λέξη-κλειδί περίληψη. Μια αφηρημένη κλάση περιέχει μηδέν ή περισσότερες αφηρημένες μεθόδους σε αυτήν. Η αφηρημένη κλάση λειτουργεί ως βασική κλάση και έχει σχεδιαστεί για να κληρονομείται από υποκλάσεις που είτε υλοποιούν είτε παρακάμπτουν τη μέθοδό της.

Ας μάθουμε αφηρημένη τάξη σε C# με παράδειγμα που δίνεται παρακάτω. Παρακάτω είναι ο ορισμός μιας κλάσης που ονομάζεται "Animal". Όταν ορίζεται η κατηγορία «Ζώο», δεν είναι γνωστό τίποτα για το ζώο, είτε είναι σκύλος είτε γάτα. Η μέθοδος που ονομάζεται περιγραφή είναι απλώς μια γενική μέθοδος που ορίζεται για την κλάση.

Abstract Class σε C#

Τώρα, όταν είναι γνωστό τι ακριβώς θα είναι το Animal, δημιουργούμε μια άλλη κλάση που κληρονομεί τη βασική κλάση. Εάν γνωρίζουμε ότι το ζώο είναι στην πραγματικότητα ένας Σκύλος, δημιουργούμε την κατηγορία Dog που κληρονομεί την κύρια βασική κατηγορία. Η βασική διαφορά εδώ είναι ότι η κλάση Dog δεν μπορεί να αλλάξει τον ορισμό του Descriptμέθοδος ιόντων της κατηγορίας Animal. Πρέπει να ορίσει τη δική του αφηρημένη μέθοδο C# που ονομάζεται Dog-Descriptιόν. Αυτή είναι η βασική έννοια των αφηρημένων κλάσεων C#.

Abstract Class σε C#

Δημιουργήστε μια Abstract Class σε C#

Ας δούμε την αφηρημένη τάξη στην C# με παραδείγματα σε πραγματικό χρόνο για το πώς μπορούμε να αλλάξουμε τον κώδικά μας για να συμπεριλάβουμε μια αφηρημένη τάξη C#. Σημειώστε ότι δεν θα εκτελούμε τον κώδικα, επειδή δεν υπάρχει τίποτα που να μπορεί να εκτελεστεί χρησιμοποιώντας μια κλάση αφαίρεσης C#.

Βήμα 1) Ως πρώτο βήμα, ας δημιουργήσουμε μια αφηρημένη τάξη. Η τάξη θα ονομάζεται Tutorial και θα έχει μόνο μία μέθοδο. Όλος ο κώδικας πρέπει να γραφτεί στο αρχείο Program.cs.

Δημιουργήστε μια Abstract Class σε C#

Επεξήγηση κώδικα: -

  1. Αρχικά ορίζουμε την αφηρημένη κλάση. Σημειώστε τη χρήση της αφηρημένης λέξης-κλειδιού. Αυτό χρησιμοποιείται για να δηλώσει ότι η κλάση είναι μια αφηρημένη κλάση.
  2. Στη συνέχεια, ορίζουμε τη μέθοδο μας που δεν κάνει τίποτα. Η μέθοδος πρέπει να έχει τη λέξη-κλειδί που ονομάζεται εικονική. Αυτό σημαίνει ότι η μέθοδος δεν μπορεί να αλλάξει από την θυγατρική κλάση. Αυτή είναι μια βασική απαίτηση για κάθε αφηρημένη τάξη.

Βήμα 2) Τώρα ας προσθέσουμε την παιδική μας τάξη. Αυτός ο κώδικας προστίθεται στο αρχείο Program.cs.

Δημιουργήστε μια Abstract Class σε C#

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(); 
  }
 }
}

Δεν υπάρχει τίποτα εξαιρετικό σε αυτόν τον κώδικα. Απλώς ορίζουμε μια κλάση που ονομάζεται 'Guru99Tutorial' η οποία κληρονομεί την αφηρημένη κλάση Tutorial. Στη συνέχεια ορίζουμε τις ίδιες μεθόδους που χρησιμοποιούσαμε από πριν.

Σημείωση:
Εδώ δεν μπορούμε να αλλάξουμε τον ορισμό της μεθόδου Set που ορίστηκε στην κλάση Tutorial. Στην κλάση Tutorial, είχαμε ορίσει μια μέθοδο που ονομάζεται 'Set' (public virtual void Set()). Εφόσον η μέθοδος ήταν μέρος της αφηρημένης κλάσης C#, δεν επιτρέπεται να ορίσουμε ξανά τη μέθοδο Set στην τάξη Guru99Tutorial.

Σύνοψη

Μια αφηρημένη τάξη στο C αιχμηρή είναι ένα προσχέδιο για άλλες τάξεις, σημειωμένο με το abstract λέξη-κλειδί. Δεν μπορεί να δημιουργηθεί άμεσα και μπορεί να περιλαμβάνει αφηρημένες μεθόδους που πρέπει να υλοποιήσουν οι παράγωγες κλάσεις. Οι αφηρημένες κλάσεις επιβάλλουν μια συνεπή δομή σε όλες τις υποκλάσεις, ενώ επιτρέπουν συγκεκριμένη λειτουργικότητα. Αυτή η έννοια χρησιμοποιείται συνήθως για τον καθορισμό των βασικών συμπεριφορών και τη διασφάλιση της ευελιξίας του κώδικα μέσω κληρονομικότητας.