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

Зміст:

Anonim

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

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

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

Тепер, коли відомо, якою саме буде тварина, ми створюємо ще один клас, який успадковує базовий клас. Якщо ми знаємо, що тварина насправді собака, ми створюємо клас собак, який успадковує основний базовий клас. Ключова різниця тут полягає в тому, що клас 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', який успадковує абстрактний клас Tutorial. Потім ми визначаємо ті самі методи, що й раніше.

Примітка: Тут ми не можемо змінити визначення методу Set, який було визначено у класі Tutorial. У класі "Підручник" ми визначили метод, що називається "Set" (загальнодоступна віртуальна порожнеча Set ()). Оскільки метод був частиною абстрактного класу C #, нам не дозволено знову визначати метод Set у класі Guru99Tutorial.

Резюме

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