Klíčový rozdíl – třída vs rozhraní
Objektově orientované programování (OOP) je běžné paradigma ve vývoji softwaru. Pomáhá přinášet reálné scénáře do programování pomocí tříd a objektů. Třída je plán pro vytvoření objektu. Programátor může vytvořit třídu s vlastnostmi a metodami. Student a učitel jsou předměty. Vytváření objektu se nazývá konkretizace. OOP také používá rozhraní. Rozhraní a třída se mohou zdát podobné, ale mají rozdíl. Tento článek popisuje rozdíl mezi třídou a rozhraním. Klíčový rozdíl mezi třídou a rozhraním je v tom, že třída je typ odkazu, který je plánem pro vytvoření instance objektu, zatímco rozhraní je typ odkazu, který nelze použít k vytvoření instance objektu.
Co je třída?
V OOP je vše považováno za objekt. Není možné vytvořit objekt bez třídy. Třída je plán pro vytvoření objektu. Při stavbě domu architekt nakreslí plán. Plán je podobný třídě. Dům je podobný objektu. Třída je plán na sestavení objektu. Objekt je to, co je vytvořeno pomocí třídy.
Třída obsahuje vlastnosti a metody. Student může mít vlastnosti, jako je jméno, známka, indexové číslo. Student může mít metody jako čtení, chůze, studium. Vytvoří se třída s nezbytnými vlastnostmi a metodami.
Syntaxe pro vytvoření třídy v mnoha programovacích jazycích je následující. Vytváří se pomocí klíčového slova class.
class class_name {
// vlastnosti
//methods
}
Programovací jazyky jako C a Java se při vytváření objektu pomocí třídy řídí podobnou syntaxí. Předpokládejme, že název třídy je Student.
Student s1=nový student ();
Toto s1 je objekt. Klíčové slovo „new“se používá k alokaci paměti pro vlastnosti. Třída má také konstruktor pro inicializaci vlastností nebo proměnných.
Členové třídy, jako jsou vlastnosti a metody, mají modifikátory přístupu. Specifikátory přístupu popisují přístupnost a viditelnost těchto členů pro jiné třídy. Členové třídy mohou mít specifikátory přístupu, jako je veřejný, soukromý a chráněný. Veřejní členové jsou přístupní jiným třídám. Soukromí členové jsou přístupní pouze třídě. Chránění členové jsou přístupní v rámci třídy a příslušných podtříd.
Co je rozhraní?
Abstrakce je pilířem objektově orientovaného programování. Slouží ke skrytí detailů implementace a zobrazení funkčnosti uživateli. Abstrakce se dosahuje pomocí abstraktních tříd a rozhraní. Abstraktní metoda nemá implementaci. Třída, která obsahuje alespoň jednu abstraktní metodu, se nazývá abstraktní třída.
Pokud existují dvě abstraktní třídy, měly by být implementovány metody deklarované v těchto třídách. K implementaci těchto metod se používá nová třída. Pokud by obě třídy měly stejnou metodu, mohlo by to způsobit problém s nejednoznačností. Proto programovací jazyky jako Java a C mají rozhraní.
Rozhraní obsahují pouze deklaraci metod. Neexistuje způsob implementace. Rozhraní také nelze použít k vytváření objektů. Používají se k podpoře vícenásobného dědictví a k zabezpečení kódu.
Syntaxe rozhraní je následující. Rozhraní použijte klíčové slovo „rozhraní“.
interface interface_name{
type method1(seznam_parametrů);
type method2(seznam_parametrů);
}
Podle výše uvedeného mají rozhraní pouze deklaraci. Neexistuje žádná definice. Rozhraní tedy nemohou vytvářet instance objektů. Poskytuje pouze abstraktní pohled na to, co je rozhraní. Metody deklarované v rozhraní mohou být implementovány jednou nebo více třídami. Třída používá klíčové slovo „implementovat“k implementaci rozhraní. Viz níže uvedený příklad napsaný pomocí Java.
Obrázek 01: Program využívající rozhraní
Podle výše uvedeného programu jsou A a B rozhraní. Rozhraní A má deklaraci metody, která je sum(). Rozhraní B má deklaraci metody sub(). Třída C implementuje obě rozhraní, což jsou A i B. Třída C tedy definuje jak metody sum() tak sub(). Po vytvoření objektu typu C je možné volat obě metody sum() a sub().
Metody deklarované uvnitř rozhraní musí být vždy veřejné, protože je definují implementační třídy. Rozhraní může také dědit z jiného rozhraní.
Jaké jsou podobnosti mezi třídou a rozhraním?
- Oba jsou referenční typy.
- Oba se týkají objektově orientovaného programování.
Jaký je rozdíl mezi třídou a rozhraním?
Třída vs rozhraní |
|
Třída je referenční typ, který je plánem pro vytvoření objektu. | Rozhraní je typ reference, který nelze vytvořit. |
Objektová instance | |
K vytvoření instance objektu se používá třída. | Rozhraní nelze vytvořit, protože metody nejsou schopny provést žádnou akci. |
Konstruktor | |
Třída obsahuje konstruktor pro inicializaci proměnných. | Rozhraní neobsahuje konstruktor, protože to nejsou téměř žádné proměnné k inicializaci. |
Klíčové slovo | |
Třída používá klíčové slovo „class“. | Rozhraní používá klíčové slovo „rozhraní“. |
Specifikátor přístupu | |
Členové třídy mohou být soukromí, veřejní a chránění. | Členové rozhraní by měli být vždy veřejní, protože je definují implementační třídy. |
Shrnutí – třída vs rozhraní
Třídy a rozhraní jsou široce používány v objektově orientovaném programování. Rozdíl mezi třídou a rozhraním je v tom, že třída je typ odkazu, což je plán pro vytvoření instance objektu, a rozhraní je typ odkazu, který nelze použít k vytvoření instance objektu. Třída může implementovat mnoho rozhraní. Může ale rozšířit pouze jednu supertřídu. V rozhraní může zdědit mnoho rozhraní, ale nemůže existovat implementace. Obojí má svůj význam. Programátor je může použít podle vývoje softwaru.
Stáhnout třídu PDF vs rozhraní
Můžete si stáhnout PDF verzi tohoto článku a použít ji pro offline účely podle citace. Stáhněte si PDF verzi zde Rozdíl mezi třídou a rozhraním