Учебное пособие по абстрактному классу C# с примером: что такое абстракция?

Что такое абстрактный класс в C#?

Абстрактный класс никогда не может быть создан экземпляр и помечен ключевым словом Abstract. Абстрактный класс содержит ноль или более абстрактных методов. Абстрактный класс действует как базовый класс и предназначен для наследования подклассами, которые либо реализуют, либо переопределяют его метод.

Давайте изучим абстрактный класс на C# на примере, приведенном ниже. Ниже приведено определение класса «Животное». Когда определен класс Animal, о животном ничего не известно, будь то собака или кошка. Метод, называемый описанием, — это всего лишь общий метод, определенный для класса.

Абстрактный класс в C#

Теперь, когда известно, каким именно будет Animal, мы создаем еще один класс, который наследует базовый класс. Если мы знаем, что животное на самом деле является собакой, мы создаем класс Dog, который наследует основной базовый класс. Ключевое отличие здесь в том, что класс Dog не может изменить определение Description метод класса Animal. Он должен определить свой собственный абстрактный метод C# под названием Dog-Descriptион. Это основная концепция абстрактных классов C#.

Абстрактный класс в C#

Создайте абстрактный класс в C#

Давайте рассмотрим абстрактный класс в C# с примерами в реальном времени того, как мы можем изменить наш код, включив в него абстрактный класс C#. Обратите внимание, что мы не будем запускать код, поскольку нет ничего, что можно было бы запустить с использованием класса абстракции C#.

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

Создайте абстрактный класс в C#

Объяснение кода: -

  1. Сначала мы определяем абстрактный класс. Обратите внимание на использование абстрактного ключевого слова. Это используется для обозначения того, что класс является абстрактным классом.
  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. В классе Tutorial мы определили метод Set (публичный виртуальный void Set()). Поскольку метод был частью абстрактного класса C#, нам не разрешено снова определять метод Set в классе Guru99Tutorial.

Резюме

абстрактный класс в До диез является планом для других классов, отмеченных знаком abstract Ключевое слово. Его нельзя инстанцировать напрямую, и он может включать абстрактные методы, которые должны реализовывать производные классы. Абстрактные классы обеспечивают согласованную структуру для подклассов, допуская при этом определенную функциональность. Эта концепция обычно используется для определения базового поведения и обеспечения гибкости кода посредством наследования.