Samouczek klasy abstrakcyjnej języka C# z przykładem: Co to jest abstrakcja?

Co to jest klasa abstrakcyjna w C#?

Klasa abstrakcyjna nigdy nie może zostać utworzona i jest oznaczona słowem kluczowym streszczenie. Klasa abstrakcyjna zawiera zero lub więcej metod abstrakcyjnych. Klasa abstrakcyjna działa jak klasa bazowa i jest zaprojektowana tak, aby była dziedziczona przez podklasy, które albo implementują, albo przesłaniają jej metodę.

Nauczmy się klasy abstrakcyjnej w C# na przykładzie podanym poniżej. Poniżej znajduje się definicja klasy o nazwie „Animal”. Po zdefiniowaniu klasy „Zwierzę” nie wiadomo nic na temat zwierzęcia, niezależnie od tego, czy jest to pies, czy kot. Metoda zwana opisem jest po prostu metodą ogólną zdefiniowaną dla klasy.

Klasa abstrakcyjna w C#

Teraz, gdy już wiadomo, jakie dokładnie będzie zwierzę, tworzymy kolejną klasę, która dziedziczy klasę bazową. Jeśli wiemy, że zwierzę jest w rzeczywistości Piesem, tworzymy klasę Pies, która dziedziczy główną klasę bazową. Kluczowa różnica polega na tym, że klasa Dog nie może zmienić definicji Descriptmetoda ion klasy Animal. Musi zdefiniować własną abstrakcyjną metodę C# zwaną Dog-Descriptjon. Jest to podstawowa koncepcja klas abstrakcyjnych języka C#.

Klasa abstrakcyjna w C#

Utwórz klasę abstrakcyjną w C#

Zobaczmy klasę abstrakcyjną w C# z przykładami w czasie rzeczywistym, jak możemy zmienić nasz kod, aby zawierał klasę abstrakcyjną C#. Pamiętaj, że nie będziemy uruchamiać kodu, ponieważ nie ma niczego, co można uruchomić przy użyciu klasy abstrakcyjnej C#.

Krok 1) Na początek utwórzmy klasę abstrakcyjną. Klasa będzie nazywać się Tutorial i będzie miała tylko jedną metodę. Cały kod należy zapisać w pliku Program.cs.

Utwórz klasę abstrakcyjną w C#

Wyjaśnienie kodu: -

  1. Najpierw definiujemy klasę abstrakcyjną. Zwróć uwagę na użycie słowa kluczowego streszczenie. Służy do oznaczenia, że ​​dana klasa jest klasą abstrakcyjną.
  2. Następnie definiujemy naszą metodę, która nic nie robi. Metoda musi mieć słowo kluczowe o nazwie virtual. Oznacza to, że klasa potomna nie może zmienić metody. Jest to podstawowy wymóg dla każdej klasy abstrakcyjnej.

Krok 2) Teraz dodajmy naszą klasę podrzędną. Ten kod jest dodawany do pliku Program.cs.

Utwórz klasę abstrakcyjną w 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(); 
  }
 }
}

W tym kodzie nie ma nic wyjątkowego. Po prostu definiujemy klasę o nazwie „Guru99Tutorial”, która dziedziczy abstrakcyjną klasę Tutorial. Następnie definiujemy te same metody, których używaliśmy wcześniej.

Uwaga:
Nie możemy tu zmienić definicji metody Set, która została zdefiniowana w klasie Tutorial. W klasie Tutorial zdefiniowaliśmy metodę zwaną „Set” (public virtual void Set()). Ponieważ metoda była częścią abstrakcyjnej klasy C#, nie wolno nam ponownie definiować metody Set w klasie Guru99Tutorial.

Podsumowanie

Klasa abstrakcyjna w C ostry jest planem dla innych klas, oznaczonych abstract słowo kluczowe. Nie może być bezpośrednio utworzone i może zawierać metody abstrakcyjne, które klasy pochodne muszą implementować. Klasy abstrakcyjne wymuszają spójną strukturę w podklasach, jednocześnie umożliwiając określoną funkcjonalność. Ta koncepcja jest powszechnie używana do definiowania zachowań bazowych i zapewniania elastyczności kodu poprzez dziedziczenie.