Rozdiel medzi triedou a rozhraním

Kľúčový rozdiel - trieda vs rozhranie
 

Objektovo orientované programovanie (OOP) je spoločným vzorom pri vývoji softvéru. Pomáha pri zavádzaní scenárov reálneho sveta do programovania pomocou tried a objektov. Trieda je plán na vytvorenie objektu. Programátor môže vytvoriť triedu s vlastnosťami a metódami. Študent a učiteľ sú objekty. Vytvorenie objektu sa nazýva inštancie. OOP tiež používa rozhrania. Rozhrania a trieda sa môžu zdať podobné, ale majú rozdiel. Tento článok popisuje rozdiel medzi triedou a rozhraním. kľúčový rozdiel medzi triedou a rozhraním je to trieda je referenčný typ, ktorý predstavuje plán na vytvorenie inštancie objektu, zatiaľ čo rozhranie je referenčný typ, ktorý nemožno použiť na vytvorenie inštancie objektu.

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je trieda
3. Čo je rozhranie
4. Podobnosti medzi triedou a rozhraním
5. Porovnanie vedľa seba - trieda verzus rozhranie v tabuľkovej forme
6. Zhrnutie

Čo je trieda?

V OOP sa všetko považuje za objekt. Nie je možné vytvoriť objekt bez triedy. Trieda je plán na vytvorenie objektu. Pri výstavbe domu architekt vypracuje plán. Plán je podobný triede. Dom je podobný objektu. Trieda je plán na zostavenie objektu. Objekt je to, čo sa vytvára pomocou triedy.

Trieda obsahuje vlastnosti a metódy. Študent môže mať vlastnosti ako meno, známka, indexové číslo. Študent môže mať metódy ako čítanie, chôdza, štúdium. Trieda je vytvorená s potrebnými vlastnosťami a metódami.

Syntax na vytvorenie triedy v mnohých programovacích jazykoch je nasledovná. Vytvorí sa pomocou triedy kľúčových slov.

class class_name

// vlastnosti

// metódy

Programovacie jazyky ako C # a Java nasledujú podobnú syntax, aby vytvorili objekt pomocou triedy. Predpokladajme, že názov triedy je Student.

Študent s1 = nový študent ();

Tento s1 je objekt. Kľúčové slovo „nové“ sa používa na pridelenie pamäte pre vlastnosti. Trieda má tiež konštruktora na inicializáciu vlastností alebo premenných.

Členovia triedy, ako sú vlastnosti a metódy, majú modifikátory prístupu. Špecifikátory prístupu opisujú prístupnosť a viditeľnosť týchto členov pre iné triedy. Členovia triedy môžu mať prístupové špecifikácie, ako sú verejné, súkromné ​​a chránené. Verejní členovia sú prístupní z iných tried. Súkromní členovia sú prístupní iba do triedy. Chránení členovia sú prístupní v rámci triedy a príslušných podtried.

Čo je rozhranie?

Abstrakcia je stĺpcom objektovo orientovaného programovania. Ide o skrytie podrobností o implementácii a zobrazenie funkčnosti pre používateľa. Abstrakcia sa dosiahne pomocou abstraktných tried a rozhraní. Abstraktná metóda nemá implementáciu. Trieda, ktorá obsahuje najmenej jednu abstraktnú metódu, sa nazýva abstraktná trieda.

Ak existujú dve abstraktné triedy, mali by sa implementovať metódy deklarované v týchto triedach. Na implementáciu týchto metód sa používa nová trieda. Ak by obe triedy mali rovnakú metódu, mohlo by to spôsobiť nejednoznačnosť. Preto majú programovacie jazyky ako Java a C # rozhranie.

Rozhrania obsahujú iba vyhlásenie o metódach. Neexistuje žiadna metóda implementácie. Rozhrania tiež nemožno použiť na vytváranie objektov. Používajú sa na podporu viacerých dedičstiev a na zabezpečenie kódu.

Syntax rozhrania je nasledovná. Rozhranie používa kľúčové slovo „rozhranie“.

interface interface_name

type method1 (parameter_list);

typ method2 (parameter_list);

Podľa vyššie uvedeného, ​​rozhrania majú iba vyhlásenie. Neexistuje žiadna definícia. Rozhrania teda nemôžu vytvárať inštancie objektov. Poskytuje iba abstraktný pohľad na to, čo je rozhranie. Metódy deklarované v rozhraní môžu byť implementované jednou alebo viacerými triedami. Trieda používa kľúčové slovo „implementovať“ na implementáciu rozhrania. Nižšie je uvedený príklad napísaný pomocou Java.

Obrázok 01: Program využívajúci rozhrania

Podľa vyššie uvedeného programu sú A a B rozhrania. Rozhranie A má vyhlásenie o metóde, ktorým je súčet (). Rozhranie B má podpoložku deklarácie metódy. Trieda C implementuje rozhrania, ktoré sú A a B. Preto trieda C definuje metódy sum () aj sub (). Po vytvorení objektu typu C je možné volať obidve metódy sum () a sub ().

Metódy deklarované vo vnútri rozhrania musia byť vždy verejné, pretože ich definujú implementačné triedy. Rozhranie môže tiež zdediť z iného rozhrania.

Aké sú podobnosti medzi triedou a rozhraním?

  • Oba typy sú referenčné.
  • Obidve sa týkajú objektovo orientovaného programovania.

Aký je rozdiel medzi triedou a rozhraním?

Trieda vs rozhranie

Trieda je referenčný typ, ktorý predstavuje plán na vytvorenie objektu. Rozhranie je referenčný typ, ktorý nie je možné vytvoriť.
 Okamžité spustenie objektu
Trieda sa používa na vytvorenie inštancie objektu. Rozhranie nie je možné vytvoriť na inštancii, pretože metódy nie sú schopné vykonať žiadnu akciu.
staviteľ
Trieda obsahuje konštruktor, ktorý inicializuje premenné. Rozhranie neobsahuje konštruktor, pretože to nie sú takmer žiadne premenné na inicializáciu.
 kľúčové
Trieda používa kľúčové slovo „class“. Rozhranie používa kľúčové slovo „rozhranie“.
Prístup k špecifikátoru
Členovia triedy môžu byť súkromní, verejní a chránení. Členovia rozhrania by mali byť vždy verejní, pretože ich definujú implementačné triedy.

Zhrnutie - trieda vs rozhranie

Triedy a rozhrania sa široko používajú v objektovo orientovanom programovaní. Rozdiel medzi triedou a rozhraním je v tom, že trieda je referenčný typ, ktorý predstavuje plán na vytvorenie inštancie objektu, a rozhranie je referenčný typ, ktorý nemožno použiť na vytvorenie inštancie objektu. Trieda môže implementovať veľa rozhraní. Môže však rozšíriť iba jednu nadtriedu. V rozhraní môže zdediť mnoho rozhraní, ale nemôže existovať implementácia. Obe majú svoj význam. Programátor ich môže použiť podľa vývoja softvéru.

Stiahnite si PDF Class vs Interface

Môžete si stiahnuť verziu tohto článku vo formáte PDF a použiť ju na účely offline podľa citácie. Stiahnite si PDF verziu tu Rozdiel medzi triedou a rozhraním

referencie:

1.tutorialspoint.com. „Objekt a triedy Java.“, Bod. K dispozícii tu 
2.navinreddy20. Rozhranie v jave s príkladom Java By Navin Reddy, 11. decembra 2012. K dispozícii tu