V tomto návode sa naučíte
- Dedenie
- Polymorfizmus
Čo je dedičstvo v C #?
Dedenie je v C # dôležitým pojmom. Dedenie je koncept, v ktorom definujete nadradené triedy a podradené triedy.
Podradené triedy dedia metódy a vlastnosti nadradenej triedy, ale zároveň môžu v prípade potreby upraviť aj správanie metód. Dieťa môže tiež v prípade potreby definovať svoje vlastné metódy.
Ak sa dočkáme tejto akcie, lepšie porozumieme.
Pozrime sa teraz, ako môžeme začleniť koncept dedičstva do nášho kódu.
Krok 1) Prvým krokom je zmena kódu pre našu triedu Tutorial. V tomto kroku pridáme nižšie uvedený kód do súboru Tutorial.cs.
Upozorňujeme, že teraz musíme pridať modifikátor prístupu „chránené“ do poľa TutorialID aj TutorialName.
Pamätajte, že sme tento modifikátor prístupu spomenuli v príručke Modifikátor prístupu. Tu vidíte účel tohto. Iba ak máte tento modifikátor prístupu (chránený), podradená trieda bude môcť používať polia nadradenej triedy.
Krok 2) Druhým krokom je pridanie našej novej podradenej triedy. Názov tejto triedy bude „Guru99Tutorial“. V tomto kroku pridáme nižšie uvedený kód do súboru Tutorial.cs. Kód by mal byť umiestnený za definíciu triedy Tutorial.
Vysvetlenie kódu: -
- Prvým krokom je vytvorenie podradenej triedy Guru99Tutorial. Musíme tiež spomenúť, že táto trieda bude podradenou triedou triedy Tutorial. To sa deje pomocou kľúčového slova „:“.
- Ďalej definujeme metódu nazvanú RenameTutorial. Bude sa používať na premenovanie poľa TutorialName. Táto metóda prijíma reťazcovú premennú, ktorá obsahuje nový názov výučby.
- Potom sme do poľa TutorialName priradili parameter pNewName.
Poznámka : - Aj keď sme v triede „Guru99Tutorial“ nedefinovali pole TutorialName, do tohto poľa máme stále prístup. Je to tak kvôli skutočnosti, že program „Guru99Tutorial“ je podradenou triedou triedy Tutorial. A pretože sme vytvorili polia triedy Tutorial ako chránené, táto trieda k nim môže získať prístup.
Krok 3) Posledným krokom je úprava nášho hlavného súboru Program.cs. V našej konzolovej aplikácii urobíme objekt triedy Guru99Tutorial. S týmto objektom zavoláme metódu RenameTutorial. Potom pomocou metódy GetTutorial zobrazíme pole TutorialName.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public String GetTutorial(){return TutorialName;}}public class Guru99Tutorial:Tutorial{public void RenameTutorial(String pNewName){TutorialName=pNewName;}static void Main(string[] args){Guru99Tutorial pTutor=new Guru99Tutorial();pTutor.RenameTutorial(".Net by Guru99");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}
Vysvetlenie kódu: -
- Prvým krokom je vytvorenie objektu pre triedu Guru99Tutorial. To sa deje pomocou kľúčového slova „nové“. Všimnite si, že tentokrát nevytvárame objekt triedy Tutorial.
- Na zmenu poľa TutorialName používame metódu RenameTutorial triedy Guru99Tutorial. Reťazec „.Net by Guru99“ odovzdáme metóde RenameTutorial.
- Potom zavoláme metódu GetTutorial. Upozorňujeme, že aj keď táto metóda nie je v triede Guru99Tutorial definovaná, stále k nej máme prístup. Výstup metódy GetTutorial sa potom zobrazí na konzole pomocou metódy Console.WriteLine.
Pokiaľ je vyššie uvedený kód zadaný správne a program je úspešne vykonaný, zobrazí sa nasledujúci výstup.
Výkon:
Z výstupu jasne vidíme, že pole TutorialName bolo premenované na „.Net od Guru99“. Toto bola možná metóda RenameTutorial volaná podradenou triedou.
Čo je polymorfizmus v C #?
Polymorfizmus je koncept OOP, kde jedno meno môže mať mnoho podôb.
Napríklad máte smartphone na komunikáciu. Komunikačný režim, ktorý si vyberiete, môže byť čokoľvek. Môže to byť hovor, textová správa, obrazová správa, pošta atď. Spoločný cieľ je teda komunikácia, ale ich prístup je odlišný. Toto sa nazýva polymorfizmus.
Ak sa dočkáme tejto akcie, lepšie porozumieme.
Pozrime sa teraz, ako môžeme začleniť koncept polymorfizmu do nášho kódu.
Krok 1) Prvým krokom je zmena kódu pre našu triedu Tutorial. V tomto kroku pridáme nižšie uvedený kód do súboru Tutorial.cs.
Vysvetlenie kódu: -
1 a 2) Prvý krok je rovnaký ako v našich predchádzajúcich príkladoch. Ponechávame definíciu metódy SetTutorial tak, ako je.
3) Táto metóda nastavuje TutorialID a TutorialName na základe parametrov pID a pName.
4) Na tomto mieste urobíme zmenu v našej triede, do ktorej pridáme novú metódu s rovnakým názvom SetTutorial. Iba tentokrát odovzdávame iba jeden parameter, ktorým je pName. V tejto metóde iba nastavujeme pole TutorialName na pName.
Krok 2) Posledným krokom je úprava nášho hlavného súboru Program.cs. V našej konzolovej aplikácii urobíme objekt triedy Guru99Tutorial.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{public int TutorialID;public string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public void SetTutorial(string pName){TutorialName=pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Tutorial pTutor=new Tutorial();pTutor.SetTutorial(1,"First Tutorial");Console.WriteLine(pTutor.GetTutorial());pTutor.SetTutorial("Second Tutorial");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}
Vysvetlenie kódu: -
- V prvom kroku používame metódu SetTutorial s 2 parametrami. Kam odovzdávame TutorialID aj TutorialName tejto metóde.
- V druhom kroku teraz voláme metódu SetTutorial iba s jedným parametrom. Práve odovzdávame TutorialName tejto metóde.
Ak je vyššie uvedený kód zadaný správne a program je spustený, zobrazí sa nasledujúci výstup. Ak ste chceli načítať ID výučby spolu s názvom výučby, mali by ste postupovať podľa nasledujúceho kroku
- Vytvorte samostatnú metódu s názvom public int GetTutorialID
- V tejto metóde napíšte kódový riadok „return TutorialID.“ To možno použiť na vrátenie TutorialID volajúcemu programu.
Výkon:
Z výstupu jasne vidíme, že obidve metódy boli volané úspešne. Z tohto dôvodu boli do konzoly odoslané reťazce „Prvý kurz“ a „Druhý kurz“.
Zhrnutie
- Dedenie je miesto, kde podradená trieda dedí polia a metódy nadradenej triedy. Podradená trieda potom môže tiež definovať svoje vlastné metódy.
- Polymorfizmus je koncept OOP, kde jedno meno môže mať mnoho podôb.