C # Abstract Class Tutorial: What is Abstraction with Example

Obsah:

Anonim

Co je abstraktní třída v C #?

Abstraktní třídu nelze nikdy vytvořit a je označena klíčovým slovem abstrakt. Abstraktní třída obsahuje nulu nebo více abstraktních metod. Abstraktní třída funguje jako základní třída a je navržena tak, aby byla zděděna podtřídami, které buď implementují, nebo přepisují svou metodu.

Naučme se abstraktní třídu v C # s níže uvedeným příkladem. Níže je definice třídy zvané „Zvíře“. Když je definována třída „Zvíře“, není o zvířeti nic známo, ať už jde o psa nebo kočku. Metoda s názvem description je jen obecná metoda definovaná pro třídu.

Nyní, když je známo, co přesně zvíře bude, vytvoříme další třídu, která zdědí základní třídu. Pokud víme, že zvíře je ve skutečnosti Pes, vytvoříme třídu Psů, která zdědí hlavní základní třídu. Klíčovým rozdílem je, že třída Dog nemůže změnit definici metody Description třídy Animal. Musí definovat vlastní C # abstraktní metodu nazvanou Dog-Description. Toto je základní koncept abstraktních tříd C #.

Podívejme se na abstraktní třídu v C # s příkladem v reálném čase, jak můžeme změnit náš kód tak, aby zahrnoval C # abstraktní třídu. Všimněte si, že nebudeme spouštět kód, protože neexistuje nic, co by bylo možné spustit pomocí třídy abstrakce C #.

Krok 1) Jako první krok vytvořme abstraktní třídu. Třída se bude jmenovat Tutorial a bude mít pouze jednu metodu. Veškerý kód musí být zapsán do souboru Program.cs.

Vysvětlení kódu: -

  1. Nejprve definujeme abstraktní třídu. Všimněte si použití abstraktního klíčového slova. To se používá k označení, že třída je abstraktní třída.
  2. Dále definujeme naši metodu, která nedělá nic. Metoda musí mít klíčové slovo zvané virtuální. To znamená, že metodu nelze změnit podřízenou třídou. Toto je základní požadavek pro jakoukoli abstraktní třídu.

Krok 2) Nyní přidáme naši podřízenou třídu. Tento kód je přidán do souboru 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();}}}

Na tomto kódu není nic výjimečného. Právě jsme definovali třídu nazvanou 'Guru99Tutorial', která dědí abstraktní třídu Tutorial. Poté definujeme stejné metody, jaké jsme používali dříve.

Poznámka: Zde nemůžeme změnit definici metody Set, která byla definována ve třídě Tutorial. Ve třídě Tutorial jsme definovali metodu nazvanou 'Set' (public virtual void Set ()). Protože metoda byla součástí abstraktní třídy C #, není nám dovoleno definovat metodu Set znovu ve třídě Guru99Tutorial.

souhrn

  • Abstraktní třída v C sharp je základní třída, která má velmi základní požadavky na to, jak by třída měla vypadat. Není možné, aby podřízená třída zdědila metody základní třídy.