Підручник із абстрактного класу C# із прикладом: що таке абстракція?

Що таке абстрактний клас у C#?

Анотація класу ніколи не може бути створено і позначено ключовим словом abstract. Абстрактний клас містить нуль або більше абстрактних методів. Абстрактний клас діє як базовий клас і призначений для успадкування підкласами, які або реалізують, або замінюють його метод.

Давайте вивчимо абстрактний клас у C# на прикладі, наведеному нижче. Нижче наведено визначення класу під назвою «Тварина». Коли визначено клас «Тварина», про тварину нічого не відомо, будь то собака чи кішка. Метод під назвою description є лише загальним методом, визначеним для класу.

Абстрактний клас у C#

Тепер, коли відомо, якою саме буде тварина, ми створюємо інший клас, який успадковує базовий клас. Якщо ми знаємо, що тварина насправді є собакою, ми створюємо клас собаки, який успадковує основний базовий клас. Ключова відмінність тут полягає в тому, що клас Dog не може змінити визначення Descriptіонний метод класу Animal. Він повинен визначити власний абстрактний метод C# під назвою Dog-Descriptіон. Це основна концепція абстрактних класів C#.

Абстрактний клас у C#

Створення абстрактного класу в C#

Давайте розглянемо абстрактний клас у C# з прикладами в реальному часі, як ми можемо змінити наш код, щоб включити абстрактний клас C#. Зверніть увагу, що ми не будемо запускати код, тому що немає нічого, що можна запустити за допомогою класу абстракції C#.

Крок 1) Для початку давайте створимо абстрактний клас. Клас називатиметься Tutorial і матиме лише один метод. Весь код потрібно записати у файл Program.cs.

Створення абстрактного класу в C#

Пояснення коду: -

  1. Спочатку ми визначимо абстрактний клас. Зверніть увагу на використання ключового слова abstract. Це використовується для позначення того, що клас є абстрактним.
  2. Далі ми визначаємо наш метод, який нічого не робить. Метод повинен мати ключове слово virtual. Це означає, що метод не може бути змінений дочірнім класом. Це основна вимога для будь-якого абстрактного класу.

Крок 2) Тепер давайте додамо наш дочірній клас. Цей код додається до файлу Program.cs.

Створення абстрактного класу в 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. У навчальному класі ми визначили метод під назвою «Set» (public virtual void Set()). Оскільки метод був частиною абстрактного класу C#, нам не дозволено знову визначати метод Set у класі Guru99Tutorial.

Підсумки

Абстрактний клас в C різкий є планом для інших класів, позначених символом abstract ключове слово. Він не може бути створений безпосередньо і може включати абстрактні методи, які мають реалізовувати похідні класи. Абстрактні класи забезпечують узгоджену структуру підкласів, дозволяючи певну функціональність. Ця концепція зазвичай використовується для визначення базової поведінки та забезпечення гнучкості коду через успадкування.