Rozdiel medzi abstraktnou triedou a rozhraním v C #

Abstraktná trieda

Abstraktná trieda je trieda, ktorá je určená iba ako základná trieda iných tried. „Abstraktný“ modifikátor sa používa na vytvorenie abstraktu triedy. Abstraktný modifikátor naznačuje, že existuje nejaká chýbajúca implementácia, ktorú je potrebné implementovať do triedy, ktorá je z nej odvodená. Abstraktná trieda môže mať abstraktné a neregistrované členy. Abstraktná trieda by mala mať aspoň jednu abstraktnú metódu, v opačnom prípade nie je možné vyhlásiť túto triedu za „abstraktnú“.

Príklad abstraktnej triedy v jazyku C #:
Ako je uvedené vo vyššie uvedenom príklade, abstraktná metóda „Area“ vo vnútri triedy MyCircle je v odvodenej triede MyArea potlačená..

Rozhranie

Rozhranie obsahuje iba deklaráciu členov vrátane metód, vlastností, udalostí alebo indexátorov. Neobsahuje implementáciu týchto členov. Trieda alebo štruktúra implementuje rozhranie, musí poskytovať definíciu metód deklarovaných v rozhraní. To znamená, že rozhranie poskytuje štandardnú štruktúru, ktorú musí odvodená trieda nasledovať.

Príklad rozhrania v jazyku C #:
Ako je uvedené v príklade vyššie, rozhranie MyData má dve deklarácie metód getdata () a showdata (). Trieda NameData, ktorá implementuje toto rozhranie, by mala definovať metódy deklarované v rozhraní MyData.

Rozdiel medzi abstraktnou triedou a rozhraním

  1. Abstraktná trieda môže mať abstraktných aj neregistrovaných členov. Ale v rozhraní sú všetci členovia implicitne abstraktní a musia byť prepísaní v odvodenej triede.
  2. Trieda môže zdediť niekoľko rozhraní, ale iba jednu abstraktnú triedu.
  3. Abstraktná trieda môže obsahovať metódy s definíciou alebo s definíciou. Rozhranie však môže obsahovať iba podpis metódy.
  4. Abstraktná trieda môže byť úplne, čiastočne alebo vôbec implementovaná, ale rozhranie by malo byť plne implementované, to znamená, že všetky členy musia byť definované v odvodenej triede..
  5. Rozhranie nemôže obsahovať modifikátory prístupu, ale abstraktná trieda ho môže mať pre funkcie, vlastnosti alebo udalosti.
IT