C# Abstract Class Tutorial s příkladem: Co je abstrakce?
Co je abstraktní třída v C#?
Abstraktní třída nelze nikdy vytvořit instanci a je označen klíčovým slovem abstrakt. Abstraktní třída obsahuje nula 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 buď přepíší její metodu.
Pojďme se naučit abstraktní třídu v C# s příkladem uvedeným níže. Níže je uvedena definice třídy s názvem 'Zvíře'. Když je definována třída 'Zvíře', není o zvířeti známo nic, ať už je to pes nebo kočka. Metoda s názvem description je pouze 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 Dog, která zdědí hlavní základní třídu. Klíčový rozdíl je v tom, že třída Dog nemůže změnit definici třídy Descriptiontová metoda třídy Animal. Musí definovat svou vlastní abstraktní metodu C# nazvanou Dog-Description. Toto je základní koncept abstraktních tříd C#.
Vytvořte abstraktní třídu v C#
Podívejme se na abstraktní třídu v C# s příklady v reálném čase, jak můžeme změnit náš kód tak, aby zahrnoval abstraktní třídu C#. Všimněte si, že nebudeme spouštět kód, protože neexistuje nic, co by bylo možné spustit pomocí abstraktní třídy 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 je třeba zapsat do souboru Program.cs.
Vysvětlení kódu:-
- 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.
- Dále definujeme naši metodu, která nic nedělá. Metoda musí mít klíčové slovo s názvem virtual. To znamená, že metodu nemůže podřízená třída změnit. Toto je základní požadavek pro jakoukoli abstraktní třídu.
Krok 2) Nyní přidáme třídu našeho dítěte. 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. Prostě definujeme třídu s názvem 'Guru99Tutorial', která zdě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#, nesmíme znovu definovat metodu Set ve třídě Guru99Tutorial.
Shrnutí
Abstraktní třída v cis je plán pro ostatní třídy, označený abstract
klíčové slovo. Nelze jej vytvořit přímo a může zahrnovat abstraktní metody, které musí implementovat odvozené třídy. Abstraktní třídy prosazují konzistentní strukturu napříč podtřídami a zároveň umožňují specifické funkce. Tento koncept se běžně používá k definování základních chování a zajištění flexibility kódu prostřednictvím dědičnosti.