Základ C# 14 – Rozhranie [Interface]

Rozhrania sú špecifický prvok dedičnosti tried. Sú nadradené abstraktným triedam a umožňujú väčší stupeň odvodzovania.

Rozhrania sú od tried a štruktúr odlišné vo viacerých bodoch. Nemôžu v nich byť deklarované žiadne premenné, všetky metódy musia byť abstraktné, aj keď nepoužívajú modifikátor, niesu označované slovom struct ani class, ale interface a nemajú žiadny konštruktor.

Tvorba rozhrania

Tvorba rozhrania je pomerne jednoduchá činnosť, keďže nemusíme použivať žiadne premenné a len zadávame mena metód.

public interface Rozhranie
{
   public void Metoda();
}

Týmto vytvoríme jednoduché rozhranie s jednou metódou Metoda. Na príklade je jasne vidno akúkoľvek absenciu konštruktora, premenných alebo modifikátoru abstract.

Odvodzovanie od rozhraní

Vytvorenie odvodených tried od rozhraní je podobné ako odvodenie od klasických tried, no má to svoje odlišnosti.

public class Odvodenie : Rozhranie
{
   public override void Metoda()
   {
   }
}

V tomto príklade vidíte, že pri odvodzovaní od rozhrania nie je nutné do triedy pridávať konštruktor a pokiaľ by ste ho do nej pridali, nie je možné použiť slovo base.

Pri odvodzovaní je tu však jedna veľká odlišnosť. Oproti odvodzovaniu od tried je možné odvodiť jednu triedu od viacerých rozhraní. Je to spôsobené práve absenciou konštrukora – pokiaľ by ste chceli odvodzovať od viacerých tried, vznikol by problém – ktorý konštruktor sa má použiť?

public class Multiodvodenie : Rozhranie1, Rozhranie2, Rozhranie3
{
   public override void Metoda1()
   {
   }

   public override void Metoda2()
   {
   }

   public override void Metoda3()
   {
   }
}

Táto trieda je odvodená od troch rozhraní, pričom ich meno je oddelené čiarkou.

Prístup k odvodeným triedam

Pri prístupe k odvodeným triedam je možne postupovať klasicky – Odvodenie objekt = new Odvodenie(). Je však možné k nemu pristupovať aj systémom Rozhranie objekt = new Objekt();  – v tomto prípade samozrejme môžete používať len metódy, ktoré sú odvodené od tohto rozhrania.

V prípade, že bude vaša trieda odvodená od viacerých rozhraní, je ju možné takto priradiť k premennej typu akéhokoľvek z nich.

Rozhranie1 obj1 = new Multiodvodenie();
Rozhranie2 obj2 = new Multiodvodenie();
Rozhranie3 obj3 = new Multiodvodenie();
obj1.Metoda1();
obj2.Metoda2();
obj3.Metoda3();

Týmto spôsobom priradíte odvodenú triedu k rôznym typom rozhraní. Iné spôsoby môžete objaviť sami, všetky sme si už prakticky ukázali v predošlých dieloch.

Po dnešnom diely plnom rozhraní sa nabudúce môžete konečne tešiť na niečo iné a to na chyby a ich riešenie.

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená.

Scroll to Top