C # Vodič za apstraktne razrede: Što je apstrakcija s primjerom

Sadržaj:

Anonim

Što je sažetak u C #?

Sažetak klase nikada ne može biti instanciran i označen je ključnom riječi abstract. Apstraktna klasa sadrži nula ili više apstraktnih metoda. Apstraktna klasa djeluje kao osnovna klasa i zamišljena je za nasljeđivanje podklasa koje ili implementiraju ili nadjačavaju njezinu metodu.

Naučimo sažetak na C # s primjerom danim u nastavku. Ispod je definicija klase koja se naziva "Životinja". Kada se definira klasa 'Životinja', o životinji se ne zna ništa, bilo da se radi o psu ili mački. Metoda koja se naziva opis samo je generička metoda definirana za klasu.

Sad kad se zna koja će točno životinja biti, kreiramo drugu klasu koja nasljeđuje osnovnu klasu. Ako znamo da je životinja zapravo pas, stvaramo klasu pas koja nasljeđuje glavnu osnovnu klasu. Ključna razlika ovdje je u tome što klasa Dog ne može promijeniti definiciju metode Opis klase Animal. Mora definirati vlastitu apstraktnu C # metodu nazvanu Dog-Description. Ovo je osnovni koncept C # apstraktnih klasa.

Pogledajmo apstraktnu klasu u C # s primjerom u stvarnom vremenu kako možemo promijeniti naš kôd tako da uključuje apstraktnu klasu C #. Imajte na umu da nećemo pokretati kôd jer ne postoji ništa što se može pokrenuti pomoću klase apstrakcije C #.

Korak 1) Kao prvi korak, stvorimo apstraktni razred. Predavanje će se zvati Tutorial i imat će samo jednu metodu. Sav kôd mora biti zapisan u datoteku Program.cs.

Objašnjenje koda: -

  1. Prvo definiramo apstraktnu klasu. Primijetite upotrebu apstraktne ključne riječi. Ovim se označava da je razred apstraktni razred.
  2. Dalje, definiramo našu metodu koja ne čini ništa. Metoda mora imati ključnu riječ koja se naziva virtualni. To znači da podređena klasa ne može promijeniti metodu. Ovo je osnovni uvjet za bilo koji apstraktni razred.

Korak 2) Dodajmo sada naš razred djeteta. Ovaj se kôd dodaje u datoteku 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();}}}

U ovom kodu nema ništa iznimno. Mi samo definiramo klasu koja se naziva 'Guru99Tutorial' koja nasljeđuje apstraktnu klasu Tutorial. Zatim definiramo iste metode koje smo koristili od prije.

Napomena: Ovdje ne možemo promijeniti definiciju metode Set koja je definirana u klasi Tutorial. U klasi Tutorial definirali smo metodu koja se naziva 'Set' (javni virtualni void Set ()). Budući da je metoda bila dio apstraktne klase C #, ne smijemo ponovno definirati metodu Set u klasi Guru99Tutorial.

Sažetak

  • Apstraktna klasa u oštrom C osnovna je klasa koja ima vrlo osnovne zahtjeve kako bi klasa trebala izgledati. Nije moguće da podređena klasa naslijedi metode osnovne klase.