C # Урок за абстрактен клас: Какво е абстракция с пример

Съдържание:

Anonim

Какво представлява абстрактният клас в C #?

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

Нека да научим абстрактния клас в C # с пример, даден по-долу. По-долу е дадено определението за клас, наречен „Животно“. Когато е дефиниран класът „Животно“, няма нищо известно за животното, независимо дали е куче или котка. Методът, наречен описание, е просто общ метод, дефиниран за класа.

Сега, когато се знае какво точно ще бъде Animal, ние създаваме друг клас, който наследява базовия клас. Ако знаем, че животното всъщност е куче, ние създаваме клас Dog, който наследява основния основен клас. Ключовата разлика тук е, че класът Dog не може да промени дефиницията на метода Description на класа Animal. Той трябва да дефинира свой собствен абстрактен метод на C #, наречен Dog-Description. Това е основната концепция на абстрактните класове на C #.

Нека да видим абстрактния клас в C # с пример в реално време за това как можем да променим нашия код, за да включим абстрактния клас C #. Обърнете внимание, че няма да стартираме кода, защото няма нищо, което може да се изпълни с клас на абстракция C #

Стъпка 1) Като първа стъпка, нека създадем абстрактен клас. Класът ще се нарича Урок и ще има само един метод. Целият код трябва да бъде записан във файла Program.cs.

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

  1. Първо дефинираме абстрактния клас. Обърнете внимание на използването на абстрактната ключова дума. Това се използва за означаване, че класът е абстрактен клас.
  2. След това дефинираме нашия метод, който не прави нищо. Методът трябва да има ключовата дума, наречена виртуален. Това означава, че методът не може да бъде променен от дъщерния клас. Това е основно изискване за всеки абстрактен клас.

Стъпка 2) Нека сега добавим нашия детски клас. Този код се добавя към файла Program.cs.

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“, който наследява абстрактния клас на урока. След това определяме същите методи, които сме използвали от преди.

Забележка: Тук не можем да променим дефиницията на метода Set, който е дефиниран в класа Tutorial. В класа „Урок“ дефинирахме метод, наречен „Set“ (публичен виртуален void Set ()). Тъй като методът е част от абстрактния клас C #, не ни е позволено да дефинираме метода Set отново в класа Guru99Tutorial.

Обобщение

  • Абстрактният клас в C Sharp е основен клас, който има най-основните изисквания за това как трябва да изглежда един клас. Не е възможно класът дете да наследи методите на базовия клас.