Rozdiel medzi rozhraním C # a abstraktnou triedou
C # je objektovo orientovaný programovací jazyk, ktorý sa používa v framework .Net na vývoj desktopových aplikácií a webových aplikácií. Bol vyvinutý a navrhnutý spoločnosťou Microsoft pre spoločnú jazykovú infraštruktúru. Prvýkrát bol vydaný v roku 2000.
Jazyk C # bol vyvinutý s koncepciou, ktorá uľahčuje programovanie, moderný a univerzálny programovací jazyk. Podporuje tiež princípy softvérového inžinierstva, ako je silné písanie, dynamická kontrola a zber odpadu. Jazyk C # má silné vlastnosti, ako je prenosnosť, písanie, metaprogramovanie, metódy a funkcie, vlastnosti, prístup k pamäti, polymorfizmus, LINQ a funkčné programovanie.
C # má spoločný typový systém, ktorý sa delí na dve časti: typ referencie a typ hodnoty. V C # sa box používa na prevod objektu typu hodnota na hodnotu zodpovedajúceho typu odkazu. Box je v C # implicitný. Unboxing sa označuje ako prevádzka hodnoty objektu referenčného typu na hodnotu typu value. C # vyžaduje explicitný typ obsadenia pre rozbalenie.
C # poskytuje plnú podporu objektovo-orientovaným konceptom, ktoré sú zapuzdrenie, abstrakcia, dedičnosť a polymorfizmus. V C # sú definované triedy, ktoré definujú štruktúru programu a polí. Trieda pozostáva hlavne z troch vecí, ktoré sú meno, atribúty a operácie. Objekty sa označujú ako príklady tried, čo pomáha pri prístupe k metódam a poliam triedy.
V C # sa enkapsulácia týka väzby členskej funkcie a dátového člena do jednej triedy. Trieda zapuzdruje množinu metód, vlastností a atribútov jej funkcií do inej triedy. V C # môže byť polymorfizmus dosiahnutý použitím preťaženia metódy a potlačenia metódy. Nazýva sa aj statický polymorfizmus (čas kompilácie) a dynamický polymorfizmus (runtime). Dedičnosť sa tiež používa na dedenie členov základnej triedy odvodenou triedou.
V C # sa abstrakcia používa na skrytie nepotrebných detailov. To znamená, že sa zameria skôr na to, čo objekt dokáže, ako na to, ako funguje. Používa sa pre veľké a zložité programy. Na dosiahnutie tohto cieľa sa používajú abstraktné triedy vs rozhranie C #. V abstraktnej triede môžeme vytvoriť funkčnosť, ktorú musí odvodená trieda implementovať. Rozhranie nám umožňuje definovať funkčnosť alebo funkcie, ale nemôžeme ho implementovať. Odvodená trieda rozširuje rozhranie a implementuje tieto funkcie.
Porovnanie medzi hlavami medzi rozhraniami C # a abstraktnými triedami (infografika)
Nižšie je uvedený najlepší 6 rozdiel medzi rozhraním C # a abstraktnou triedou.
Kľúčové rozdiely medzi rozhraním C # a abstraktnou triedou
Rozhranie C # Interface vs Abstraktné triedy sú na trhu populárne voľby; diskutujme o niektorých hlavných rozdieloch medzi rozhraním C # a triedou abstraktov:
- V C # trieda A zdedí jedno alebo viac rozhraní. Trieda však môže zdediť iba jednu abstraktnú triedu.
- V C # nemôže mať rozhranie vyhlásenie konštruktora. Abstraktná trieda môže mať vyhlásenie konštruktora.
- V C # sa rozhranie používa na definovanie vonkajších schopností triedy. Abstraktná trieda sa používa na definovanie skutočnej identity triedy a používa sa ako objekt alebo rovnaký typ.
- V C # sa rozhranie používa, ak rôzne implementácie zdieľajú iba podpisy metód. Abstraktná trieda sa používa, ak sú rôzne implementácie toho istého druhu a používajú rovnaké správanie alebo stav.
- Ak v C # bola do rozhrania pridaná nová metóda, musíme sledovať, kde bolo implementované celé rozhranie, a tiež pridať implementáciu tejto metódy. V abstraktnej triede, ak bola pridaná nová metóda, máme možnosť pridať predvolenú implementáciu, a preto celý existujúci kód funguje správne.
C # Rozhranie vs Abstraktná porovnávacia tabuľka tried
Primárne porovnanie medzi rozhraním C # a abstraktnou triedou je uvedené nižšie:
Základ porovnania medzi rozhraním C # a abstraktnou triedou |
C # Rozhranie |
C # Abstraktná trieda |
Prístup k špecifikátoru | V C # nemôže mať rozhranie špecifikátor prístupu pre funkcie. V predvolenom nastavení je verejné. | V C # môže mať abstraktná trieda špecifikátor prístupu pre funkcie. |
uskutočnenie | V C # môže mať rozhranie iba podpis, nie implementáciu. | Abstraktná trieda môže zabezpečiť úplnú implementáciu. |
rýchlosť | Rozhranie je pomerne pomalé. | Abstraktná trieda je rýchla. |
vytvoriť inštanciu | Rozhranie je úplne abstraktné a nedá sa vytvoriť inštancia. | Abstraktnú triedu nemožno vytvoriť. |
Fields | Rozhranie nemôže obsahovať polia. | Abstraktná trieda môže mať definované polia a konštanty. |
metódy | Rozhranie má iba abstraktné metódy. | Abstraktná trieda môže mať non-abstraktné metódy. |
Záver - C # Rozhranie vs Abstraktná trieda
V C # sa na abstrakciu údajov použila abstraktná trieda verzus rozhranie C #. Rozhranie je lepšie ako abstraktná trieda, keď rozhranie musí implementovať viacero tried. Člen rozhrania nemôže byť statický. Jediný úplný člen abstraktnej triedy môže byť statický.
C # nepodporuje viacnásobné dedenie, rozhrania sa používajú hlavne na implementáciu viacerých dedičstiev. Ako trieda môže implementovať viac ako jedno rozhranie a dediť iba z jednej abstraktnej triedy. Rozhranie sa používa hlavne vtedy, keď nevyžadujeme implementáciu metód alebo funkcií. Abstraktná trieda sa používa, keď vyžadujeme aspoň predvolenú implementáciu.
Obidve triedy C # Interface vs Abstraktné triedy sú vynikajúce objektovo-orientované programovacie koncepty, ktoré sa podľa požiadavky používajú pri vývoji aplikácií vysoko. Je to čisto vybrané podľa technických vedie, s ktorými sú pohodlnejšie a obchodné požiadavky. Obidve triedy C # Rozhranie vs Abstraktná trieda sa ľahko používajú a ľahko sa učia v akomkoľvek programovacom jazyku.
Odporúčaný článok
Toto bol sprievodca najväčšími rozdielmi medzi rozhraním C # a abstraktnou triedou. Ďalej diskutujeme o kľúčových rozdieloch medzi rozhraním C # a abstraktnými triedami s infografikou a porovnávacou tabuľkou. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- C # vs Python
- ASP.NET vs C #
- Rozhranie Java vs Abstraktná trieda
- Java vs C #
- Metóda preťaženia v C #
- Preťaženie a prekonanie v C #