Kas yra C # santraukos klasė?
Anotacijos klasė niekada negali būti momentinė ir žymima raktiniu žodžiu abstraktus. Abstrakčioje klasėje yra nulis ar daugiau abstrakčių metodų. Santrauka klasė veikia kaip bazinė klasė ir yra sukurta taip, kad ją paveldėtų poklasiai, kurie įgyvendina arba pakeičia jo metodą.
Mokykimės abstrakčios klasės C # su toliau pateiktu pavyzdžiu. Žemiau pateikiamas klasės, vadinamos „gyvūnais“, apibrėžimas. Apibrėžus „gyvūnų“ klasę, apie gyvūną nėra nieko žinoma, nesvarbu, ar tai šuo, ar katė. Metodas, vadinamas aprašymu, yra tik bendras metodas, apibrėžtas klasei.
Dabar, kai yra žinoma, koks tiksliai bus Gyvūnas, mes sukursime kitą klasę, kuri paveldės pagrindinę klasę. Jei žinome, kad gyvūnas iš tikrųjų yra šuo, sukuriame šunų klasę, kuri paveldi pagrindinę pagrindinę klasę. Esminis skirtumas yra tas, kad šunų klasė negali pakeisti gyvūnų klasės aprašymo metodo apibrėžimo. Ji turi apibrėžti savo C # abstraktų metodą, pavadintą „Dog-Description“. Tai yra pagrindinė C # abstrakčių klasių samprata.
Pažiūrėkime abstrakčią klasę C # su realaus laiko pavyzdžiu, kaip mes galime pakeisti savo kodą, įtraukdami C # abstrakčią klasę. Atkreipkite dėmesį, kad kodo nevykdysime, nes nieko negalima paleisti naudojant C # abstrakcijos klasę.
1 žingsnis) Pirmiausia sukurkime abstrakčią klasę. Klasė vadinsis Pamoka ir turės tik vieną metodą. Visą kodą reikia įrašyti į failą Program.cs.
Kodo paaiškinimas: -
- Pirmiausia apibrėžiame abstrakčią klasę. Atkreipkite dėmesį į abstraktaus raktinio žodžio naudojimą. Tai naudojama pažymėti, kad klasė yra abstrakti klasė.
- Toliau mes apibrėžiame savo metodą, kuris nieko nedaro. Metodas turi turėti raktinį žodį, vadinamą virtualiu. Tai reiškia, kad metodas negali būti pakeistas vaikų klase. Tai yra pagrindinis reikalavimas bet kuriai abstrakčiai klasei.
2 žingsnis) Dabar pridėkime savo vaikų klasę. Šis kodas pridedamas prie failo 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();}}}
Šiame kode nėra nieko išskirtinio. Mes tiesiog apibrėžiame klasę, vadinamą „Guru99Tutorial“, kuri paveldi abstrakčią „Tutorial“ klasę. Tada mes apibrėžiame tuos pačius metodus, kuriuos naudojome anksčiau.
Pastaba: Čia mes negalime pakeisti „Set“ metodo apibrėžimo, kuris buvo apibrėžtas „Tutorial“ klasėje. Pamokoje „Pamoka“ mes apibrėžėme metodą, vadinamą „Rinkinys“ (viešasis virtualusis negaliojantis rinkinys ()). Kadangi metodas buvo abstrakčios C # klasės dalis, „Guru99Tutorial“ klasėje mums neleidžiama dar kartą apibrėžti metodo „Set“.