Tutorial de clasă abstractă C# cu exemplu: Ce este abstracția?

Ce este Clasa abstractă în C#?

Clasa abstractă nu poate fi niciodată instanțiat și este marcat de cuvântul cheie abstract. O clasă abstractă conține zero sau mai multe metode abstracte în ea. Clasa abstractă acționează ca o clasă de bază și este proiectată pentru a fi moștenită de subclasele care fie implementează, fie suprascriu metoda.

Să învățăm clasa abstractă în C# cu exemplul de mai jos. Mai jos este definiția unei clase numite „Animal”. Când este definită clasa „Animal”, nu se știe nimic despre animal, fie că este un câine sau o pisică. Metoda numită descriere este doar o metodă generică definită pentru clasă.

Clasă abstractă în C#

Acum, când se știe ce anume va fi Animalul, creăm o altă clasă care moștenește clasa de bază. Dacă știm că animalul este de fapt un Câine, creăm clasa Dog care moștenește clasa de bază principală. Diferența cheie aici este că clasa Dog nu poate schimba definiția Descriptmetoda ionică a clasei Animal. Trebuie să-și definească propria metodă abstractă C# numită Dog-Description. Acesta este conceptul de bază al claselor abstracte C#.

Clasă abstractă în C#

Creați o clasă abstractă în C#

Să vedem o clasă abstractă în C# cu exemple în timp real despre cum ne putem schimba codul pentru a include o clasă abstractă C#. Rețineți că nu vom rula codul, deoarece nu există nimic care să poată fi rulat folosind o clasă de abstractizare C#.

Pas 1) Ca prim pas, să creăm o clasă abstractă. Clasa se va numi Tutorial și va avea doar o singură metodă. Tot codul trebuie scris în fișierul Program.cs.

Creați o clasă abstractă în C#

Explicația codului: -

  1. Mai întâi definim clasa abstractă. Observați utilizarea cuvântului cheie abstract. Aceasta este folosită pentru a indica faptul că clasa este o clasă abstractă.
  2. În continuare, ne definim metoda care nu face nimic. Metoda trebuie să aibă cuvântul cheie numit virtual. Aceasta înseamnă că metoda nu poate fi schimbată de către clasa copil. Aceasta este o cerință de bază pentru orice clasă abstractă.

Pas 2) Acum să adăugăm clasa noastră de copii. Acest cod este adăugat la fișierul Program.cs.

Creați o clasă abstractă în 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(); 
  }
 }
}

Nu este nimic excepțional la acest cod. Doar definim o clasă numită „Guru99Tutorial” care moștenește clasa abstractă Tutorial. Apoi definim aceleași metode pe care le-am folosit de înainte.

Notă:
Aici nu putem schimba definiția metodei Set care a fost definită în clasa Tutorial. În clasa Tutorial, am definit o metodă numită „Set” (public virtual void Set()). Deoarece metoda făcea parte din clasa abstractă C#, nu avem voie să definim din nou metoda Set în clasa Guru99Tutorial.

Rezumat

O clasă abstractă în C ascuțit este un plan pentru alte clase, marcat cu abstract cuvânt cheie. Nu poate fi instanțiat direct și poate include metode abstracte pe care clasele derivate trebuie să le implementeze. Clasele abstracte impun o structură consistentă între subclase, permițând în același timp funcționalități specifice. Acest concept este folosit în mod obișnuit pentru a defini comportamentele de bază și pentru a asigura flexibilitatea codului prin moștenire.