Klíčový rozdíl – supertřída vs podtřída
V objektově orientovaném programování (OOP) je systém modelován pomocí objektů. Tyto objekty jsou vytvořeny pomocí třídy. Třída je plán nebo popis k vytvoření objektu. Vytváření objektů je také známé jako vytváření instancí objektů. Každý objekt komunikuje s jinými objekty. Program nebo software lze vyvinout pomocí objektově orientovaného programování. Dědičnost je hlavním pojmem v OOP. Zlepšuje znovupoužitelnost kódu. Spíše než implementovat program od začátku, umožňuje zdědit vlastnosti a metody již existující třídy na novou třídu. Pomáhá to, aby byl program lépe ovladatelný. Superclass a Subclass jsou dva pojmy, které souvisejí s dědičností. Tento článek pojednává o rozdílu mezi Superclass a Subclass. Klíčový rozdíl mezi nadtřídou a podtřídou je v tom, že nadtřída je existující třída, ze které jsou nové třídy odvozeny, zatímco podtřída je nová třída, která dědí vlastnosti a metody nadtřídy.
Co je supertřída?
V dědičnosti je existující třída, ze které jsou odvozeny nové třídy, známá jako nadtřída. Je také známá jako nadřazená třída nebo základní třída.
Existují různé typy dědičnosti. Jsou ilustrovány pomocí následujících příkladů. Považujte A B a C za třídy.
Obrázek 01: Typy dědičnosti
Obrázek 02: Hybridní dědičnost
Podle výše uvedených diagramů se nadtřídy liší u každého typu dědičnosti. V jednoúrovňové dědičnosti je A nadtřídou. Ve víceúrovňové dědičnosti je A nadtřídou pro B a B je nadtřídou pro C. V hierarchické dědičnosti je A nadtřídou pro B i C. Při vícenásobné dědičnosti jsou A i B nadtřídou pro C.
Hybridní dědičnost je kombinací víceúrovňové a vícenásobné dědičnosti. V diagramu na levé straně je A nadtřída pro B, C a B, C jsou nadtřídy pro D. V diagramu na pravé straně je A nadtřída pro B a B, D jsou nadtřídy pro C.
Odkaz na níže uvedený program napsaný v Javě.
Obrázek 03: Program dědičnosti v Javě
Podle výše uvedeného programu má třída A metody sum() a sub(). Třída B má metodu multiply(). Třída B rozšiřuje třídu A. Vlastnosti a metody třídy A jsou tedy přístupné třídě B. Třída A je tedy nadtřídou. K vytvoření objektu se použije referenční typ třídy B. Takže všechny metody jako sum(), sub() a multiply() jsou přístupné objektu. Pokud je pro vytvoření objektu použit referenční typ Superclass, členové třídy B nemohou být přístupní. např. A obj=new B(); Proto odkaz na nadtřídu nemůže volat metodu multiply(), protože tato metoda patří do třídy B.
Co je podtřída?
Podle výše uvedených diagramů se podtřídy u jednotlivých typů dědičnosti liší. V jediné dědičnosti je B podtřída. Při víceúrovňové dědičnosti je B podtřídou třídy A a C je podtřídou třídy B. V hierarchické dědičnosti jsou B a C podtřídy třídy A. Ve vícenásobné dědičnosti je C podtřídou pro A a B.
V hybridní dědičnosti je diagram nalevo, B a C jsou podtřídy A. D je podtřída B a C. V diagramu vpravo je B podtřída pro A. C je podtřída z B a D.
Podle výše uvedeného programu Inheritance rozšiřuje třída B třídu A. Proto jsou všechny vlastnosti a metody třídy A přístupné třídě B. Třída B je nová třída, která dědí z třídy A. Je známá jako podtřída. Je také známá jako podřízená třída nebo odvozená třída. Třída B má metodu multiply () a může také přistupovat k metodám sum() a sub() třídy A pomocí dědičnosti.
Jaká je podobnost mezi nadtřídou a podtřídou?
Obojí souvisí s dědičností
Jaký je rozdíl mezi nadtřídou a podtřídou?
Supertřída vs podtřída |
|
Při implementaci dědičnosti je stávající třída, ze které jsou nové třídy odvozeny, Superclass. | Při implementaci dědičnosti je třídou, která zdědí vlastnosti a metody z nadtřídy, podtřída. |
Synonyma | |
Supertřída je známá jako základní třída, rodičovská třída. | Podtřída je známá jako odvozená třída, podřízená třída. |
Funkčnost | |
Nadtřída nemůže používat vlastnosti a metody podtřídy. | Podtřída může používat vlastnosti a metody nadtřídy. |
Jednoúrovňová dědičnost | |
Existuje jedna supertřída. | Existuje jedna podtřída. |
Hierarchická dědičnost | |
Existuje jedna supertřída | Existuje mnoho podtříd. |
Vícenásobné dědictví | |
Existuje mnoho supertříd. | Existuje jedna podtřída. |
Shrnutí – Superclass vs. Subclass
Dědičnost je koncept OOP. Umožňuje použití vlastností a metod existující třídy, ke kterým má nová třída přistupovat. Zděděná třída je nadtřída a odvozená třída je podtřída. Rozdíl mezi nadtřídou a podtřídou je ten, že nadtřída je existující třída, ze které jsou odvozeny nové třídy, zatímco podtřída je nová třída, která dědí vlastnosti a metody nadtřídy.
Stáhnout PDF Superclass vs Subclass
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 supertřídou a podtřídou