C# Absztrakt osztály oktatóanyag példával: Mi az absztrakció?

Mi az absztrakt osztály a C#-ban?

Absztrakt osztály soha nem példányosítható, és az absztrakt kulcsszó jelöli. Egy absztrakt osztály nulla vagy több absztrakt metódust tartalmaz. Az absztrakt osztály alaposztályként működik, és úgy tervezték, hogy örököljék az alosztályok, amelyek vagy megvalósítják, vagy felülírják a metódusát.

Tanuljunk absztrakt osztályt C# nyelven az alábbi példával. Az alábbiakban az „Állat” nevű osztály definíciója olvasható. Az „Állatok” osztály meghatározásakor semmit sem tudunk az állatról, legyen az kutya vagy macska. A leírás nevű metódus csak egy általános metódus, amelyet az osztályhoz definiáltak.

Absztrakt osztály C# nyelven

Most, amikor tudjuk, hogy pontosan mi lesz az Állat, létrehozunk egy másik osztályt, amely örökli az alaposztályt. Ha tudjuk, hogy az állat valójában Kutya, létrehozunk Kutya osztályt, amely örökli a fő alaposztályt. A legfontosabb különbség itt az, hogy a Kutya osztály nem tudja megváltoztatni a definícióját Description módszer az Animal osztályba. Meg kell határoznia a saját C# absztrakt módszerét, a Dog-Description. Ez a C# absztrakt osztályok alapkoncepciója.

Absztrakt osztály C# nyelven

Hozzon létre egy absztrakt osztályt C# nyelven

Nézzük meg a C# absztrakt osztályát valós idejű példákkal arra vonatkozóan, hogyan változtathatjuk meg a kódunkat, hogy C# absztrakt osztályt tartalmazzon. Ne feledje, hogy nem fogjuk futtatni a kódot, mert semmi sem futtatható C# absztrakciós osztály használatával.

Step 1) Első lépésként hozzunk létre egy absztrakt osztályt. Az osztály neve Tutorial lesz, és csak egy módszere lesz. Az összes kódot be kell írni a Program.cs fájlba.

Hozzon létre egy absztrakt osztályt C# nyelven

Kód magyarázata: -

  1. Először meghatározzuk az absztrakt osztályt. Vegye figyelembe az absztrakt kulcsszó használatát. Ezt arra használják, hogy jelezzék, hogy az osztály egy absztrakt osztály.
  2. Ezután meghatározzuk a módszerünket, amely nem tesz semmit. A metódusnak rendelkeznie kell a virtual kulcsszóval. Ez azt jelenti, hogy a metódus nem változtatható meg a gyermekosztály által. Ez alapvető követelmény minden absztrakt osztálynál.

Step 2) Most adjuk hozzá a gyermekosztályunkat. Ez a kód hozzáadódik a Program.cs fájlhoz.

Hozzon létre egy absztrakt osztályt C# nyelven

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

Ebben a kódban nincs semmi kivételes. Csak meghatározunk egy 'Guru99Tutorial' nevű osztályt, amely örökli az absztrakt Tutorial osztályt. Ezután ugyanazokat a módszereket határozzuk meg, amelyeket korábban is használtunk.

Jegyzet:
Itt nem tudjuk megváltoztatni a Set metódus definícióját, amelyet a Tutorial osztályban definiáltunk. A Tutorial osztályban definiáltunk egy 'Set' nevű metódust (public virtual void Set()). Mivel a metódus a C# absztrakt osztály része volt, nem definiálhatjuk újra a Set metódust a Guru99Tutorial osztályban.

Összegzésként

Egy absztrakt osztály C éles egy tervrajz a többi osztály számára, jelzéssel abstract kulcsszó. Nem példányosítható közvetlenül, és tartalmazhat absztrakt módszereket, amelyeket a származtatott osztályoknak meg kell valósítaniuk. Az absztrakt osztályok konzisztens struktúrát kényszerítenek ki az alosztályok között, miközben bizonyos funkciókat tesznek lehetővé. Ezt a koncepciót általában az alapviselkedések meghatározására és a kód öröklődésen keresztüli rugalmasságának biztosítására használják.