Srovnávací graf
Základ pro porovnání | Třída | Rozhraní |
---|---|---|
Základní | Třída je vytvořena pro vytváření objektů. | Rozhraní nelze nikdy vytvořit instanci, protože metody nejsou schopny provádět žádnou akci při vyvolání. |
Klíčové slovo | třída | rozhraní |
Specifikátor přístupu | Členové třídy mohou být soukromí, veřejní nebo chráněni. | Členové rozhraní jsou vždy veřejní. |
Metody | Metody třídy jsou definovány pro provedení konkrétní akce. | Metody v rozhraní jsou čistě abstraktní. |
Implementovat / rozšířit | Třída může implementovat libovolný počet rozhraní a může rozšířit pouze jednu třídu. | Rozhraní může rozšířit více rozhraní, ale nemůže implementovat žádné rozhraní. |
Konstruktor | Třída může mít konstruktory pro inicializaci proměnných. | Rozhraní nikdy nemůže mít konstruktor, protože je téměř žádná proměnná, která se má inicializovat. |
Definice třídy
Třída je nejdůležitějším aspektem programování jazyka Java bez tříd, které nelze implementovat do programu java. Třída vytváří typy odkazů a tyto typy odkazů se používají k vytváření objektů. Třída má podpis a tělo. Podpis třídy má jméno třídy a informace, které říkají, zda třída zdědila jinou třídu. Tělo třídy má pole a metody, které fungují na těchto polích. Třída je vytvořena pomocí třídy klíčových slov. Podívejme se, jak deklarovat třídu.
třída class_name {/ * fields ... methods * /}
Když je instalována třída, každý vytvořený objekt obsahuje kopii polí a metod s nimi. Pole a členy deklarované uvnitř třídy mohou být statické nebo nestatické. Hodnota statických členů je konstantní pro každý objekt, zatímco nestatické členy jsou inicializovány každým objektem odlišně podle jeho požadavku.
Členové třídy mají specifikátory přístupu, které rozhodují o viditelnosti a přístupnosti členů k uživateli nebo podtřídám. Specifikátory přístupu jsou veřejné, soukromé a chráněné. Třída může být zděděna jinou třídou pomocí specifikátoru přístupu, který rozhodne o viditelnosti členů nadtřídy (zděděné třídy) v podtřídě (zděděná třída). Třída tak naplňuje koncept skrývání dat a zapouzdření v objektově orientovaném programování.
Definice rozhraní
Rozhraní je také mezi referenčními typy definovanými v jazyce Java. Význam rozhraní je, že v Javě může třída pouze zdědit jednu třídu. Aby se zabránilo tomuto omezení, návrháři Java představili koncept rozhraní. Rozhraní je syntakticky podobné třídě, ale chybí v deklaraci pole a metody uvnitř rozhraní nemají žádnou implementaci. Rozhraní je deklarováno pomocí rozhraní klíčových slov. Podívejme se na prohlášení rozhraní.
rozhraní interface_name {typ var_name = hodnota; type method1 (seznam parametrů); typ method2 (seznam parametrů); . . }
Rozhraní nedefinuje žádnou metodu deklarovanou uvnitř, protože chybí v polích, ve kterých se má pracovat. Jen proto, že žádná metoda uvnitř rozhraní neprovádí žádnou akci, rozhraní nemůže být nikdy instalováno. Má-li rozhraní kteréhokoli člena pole, musí být inicializováno v okamžiku jejich deklarace. Rozhraní nikdy neobsahuje žádné konstruktory, protože chybí členům pole, aby se mohli inicializovat. Takže rozhraní definuje pouze to, co musí třída dělat místo toho, jak to musí udělat.
Vytvořené rozhraní může být implementováno libovolným počtem tříd pomocí implementačního klíčového slova. Třídy implementující rozhraní však musí definovat všechny metody uvnitř rozhraní. Rozhraní může také zdědit jiné rozhraní pomocí rozšířeného klíčového slova. Pokud třída implementuje rozhraní, které rozšiřuje jiné rozhraní. Potom musí třída definovat metody obou rozhraní, která se objevují v řetězci. Metody uvnitř rozhraní musí být vždy veřejné, protože musí být přístupné třídám, které je implementují.
Klíčové rozdíly mezi třídou a rozhraním v jazyce Java
- Třídu lze vytvořit instancí vytvořením jejích objektů. Rozhraní není nikdy instalováno, protože metody deklarované uvnitř rozhraní jsou abstraktní a neprovádějí žádnou akci, takže není nutné vytvářet žádné rozhraní.
- Třída je deklarována pomocí třídy klíčového slova. Stejným způsobem je vytvořeno rozhraní pomocí klíčového rozhraní.
- Členové třídy mohou mít specifikátor přístupu jako veřejný, soukromý, chráněný. Členové rozhraní jsou však vždy veřejní, protože k nim musí přistupovat třídy, které je implementují.
- Metody uvnitř třídy jsou definovány k provedení akce na polích deklarovaných ve třídě. Protože rozhraní chybí v deklaraci polí, metody uvnitř rozhraní jsou čistě abstraktní.
- Třída může implementovat libovolný počet rozhraní, ale může rozšířit pouze jednu super třídu. Rozhraní může rozšířit libovolný počet rozhraní, ale nemůže implementovat žádné rozhraní.
- Třída má uvnitř sebe konstruktory, aby proměnná byla inicializována. Rozhraní však nemá žádné konstruktory, protože neexistují žádná pole, která mají být inicializována. Pole rozhraní jsou inicializována pouze v době jejich deklarace.
Závěr:
Jak třídy, tak rozhraní mají svůj vlastní význam. Třída se používá, když musíme definovat, jak bude úloha provedena. Rozhraní se používá, když potřebujeme vědět, jaký úkol je třeba udělat.