Vodič za C# apstraktnu klasu s primjerom: Što je apstrakcija?

Što je apstraktna klasa u C#?

Sažetak klase nikada se ne može instancirati i označen je ključnom riječi abstract. Apstraktna klasa sadrži nula ili više apstraktnih metoda u sebi. Apstraktna klasa djeluje kao osnovna klasa i dizajnirana je da je nasljeđuju podklase koje ili implementiraju ili nadjačavaju njenu metodu.

Naučimo apstraktnu klasu u C# s primjerom danim u nastavku. Ispod je definicija klase pod nazivom 'Animal'. Kada je klasa 'Animal' definirana, ne zna se ništa o životinji, bilo da se radi o psu ili mački. Metoda zvana opis je samo generička metoda definirana za klasu.

Apstraktna klasa u C#

Sada kada se zna što će životinja točno biti, kreiramo drugu klasu koja nasljeđuje osnovnu klasu. Ako znamo da je životinja zapravo Pas, stvaramo klasu Pas koja nasljeđuje glavnu baznu klasu. Ključna razlika ovdje je da klasa Pas ne može promijeniti definiciju Descriptionska metoda klase Animal. Mora definirati vlastitu C# apstraktnu metodu koja se zove Dog-Description. Ovo je osnovni koncept C# apstraktnih klasa.

Apstraktna klasa u C#

Napravite apstraktnu klasu u C#

Pogledajmo apstraktnu klasu u C# s primjerima u stvarnom vremenu o tome kako možemo promijeniti naš kod da uključi C# apstraktnu klasu. Imajte na umu da nećemo pokretati kod jer ne postoji ništa što se može pokrenuti pomoću C# klase apstrakcije.

Korak 1) Kao prvi korak, kreirajmo apstraktnu klasu. Klasa će se zvati Tutorial i imat će samo jednu metodu. Sav kôd potrebno je napisati u datoteci Program.cs.

Napravite apstraktnu klasu u C#

Objašnjenje koda:-

  1. Prvo definiramo apstraktnu klasu. Obratite pažnju na korištenje ključne riječi sažetak. Ovo se koristi da označi da je klasa apstraktna klasa.
  2. Zatim definiramo našu metodu koja ne radi ništa. Metoda mora imati ključnu riječ pod nazivom virtual. To znači da se metoda ne može promijeniti od strane podređene klase. Ovo je osnovni zahtjev za svaku apstraktnu klasu.

Korak 2) Dodajmo sada klasu djeteta. Ovaj se kod dodaje u datoteku Program.cs.

Napravite apstraktnu klasu u 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(); 
  }
 }
}

Nema ničeg izuzetnog u ovom kodu. Samo definiramo klasu pod nazivom 'Guru99Tutorial' koja nasljeđuje apstraktnu klasu Tutorial. Zatim definiramo iste metode koje smo koristili od ranije.

Bilješka:
Ovdje ne možemo promijeniti definiciju metode Set koja je definirana u klasi Tutorial. U klasi Tutorial definirali smo metodu pod nazivom 'Set' (public virtual void Set()). Budući da je metoda bila dio apstraktne klase C#, nije nam dopušteno ponovno definirati metodu Set u klasi Guru99Tutorial.

rezime

Apstraktna klasa u C oštro je nacrt za druge klase, označen s abstract ključna riječ. Ne može se izravno instancirati i može uključivati ​​apstraktne metode koje izvedene klase moraju implementirati. Apstraktne klase provode konzistentnu strukturu kroz potklase dok dopuštaju specifičnu funkcionalnost. Ovaj se koncept obično koristi za definiranje osnovnih ponašanja i osiguravanje fleksibilnosti koda putem nasljeđivanja.