co is Inheritance?
Inheritance is a mechanism in which one class acquires the property of another class. Například dítě zdědí rysy svých rodičů. S dědičností můžeme znovu použít pole a metody existující třídy. Dědičnost tedy usnadňuje opětovnou použitelnost a je důležitým konceptem OOP.
V tomto výukovém programu se naučíte –
- Typy dědičnosti
- Dědičnost v Javě
- Jáva Příklad dědičnosti
- Super klíčové slovo
- Naučte se dědičnost v OOP pomocí příkladu
Druhy dědičnosti
Existují Různé typy dědičnosti v Javě:
Single Inheritance:
V Single Inheritance jedna třída rozšiřuje další třídu (pouze jedna třída).
Ve výše uvedeném diagramu třída B rozšiřuje pouze třídu A. Třída A je super třída a Třída B je podtřída.
Vícenásobná dědičnost:
V případě vícenásobné dědičnosti jedna třída rozšiřuje více než jedna třída. Java nepodporuje vícenásobné dědění.
Podle výše uvedeného diagramu třída C rozšiřuje obě třídy A a B.
Víceúrovňová dědičnost:
Ve víceúrovňové dědičnosti může jedna třída dědit z odvozené třídy. Odvozená třída se proto stává základní třídou pro novou třídu.
Jak je znázorněno v diagramu, třída C je podtřídou B a B je a podtřídy třídy A.
Hierarchická dědičnost:
V hierarchické dědičnosti je jedna třída zděděna mnoha podtřídami.
Podle výše uvedeného příkladu dědí třídy B, C a D totéž třída A.
Hybridní dědičnost:
Hybridní dědičnost je kombinací jednoduché a vícenásobné dědičnosti.
Podle výše uvedeného příkladu jsou všichni veřejní a chránění členové třídy A zděděné do třídy D, nejprve přes třídu B a za druhé přes třídu C.
Poznámka: Java nepodporuje hybridní / vícenásobnou dědičnost
Dědičnost v Javě
JAVA INHERITANCE je mechanismus, ve kterém jedna třída získává vlastnost jiné třídy. V Javě, když mezi dvěma třídami existuje vztah „Is-A“, použijeme dědičnost. Rodičovská třída se nazývá super třída a zděděná třída se nazývá podtřída. Klíčové slovo extends
používá podtřída k zdědění funkcí super třídy.
Dědičnost je důležité, protože vede k opakovanému použití kódu.
Syntaxe Java Inheritance:
class subClass extends superClass { //methods and fields }
Java Inheritance E xample
Super klíčové slovo
Super klíčové slovo je podobné klíčovému slovu „toto“.
Klíčové slovo super lze použít pro přístup k jakémukoli datovému členu nebo metodám nadřazené třídy.
Super klíčové slovo lze použít na úrovni proměnné, metody a konstruktoru.
Syntaxe:
super.<method-name>();
Naučte se dědičnost v OOP s příkladem
Zvažte stejnou bankovní aplikaci z předchozího příkladu .
Měli bychom otevřít dva různé typy účtů, jeden pro ukládání a druhý pro kontrolu (označovaný také jako aktuální).
Pojďme porovnat a prostudovat, jak můžeme přistupovat ke kódování z pohledu strukturovaného a objektově orientovaného programování. Strukturální přístup: Ve strukturovaném programování vytvoříme dvě funkce –
- Jedna pro výběr
- A druhá pro vkladovou akci.
Protože fungování těchto funkcí zůstává ve všech účtech stejné.
Přístup OOP: Při použití programovacího přístupu OOP. Vytvořili bychom dvě třídy.
- Každá má implementaci funkcí vkladu a výběru.
- Tím se zbytečně nadbytečné práce.
Žádost o změnu softwaru
Nyní došlo ke změně ve specifikaci požadavků pro něco, co je v softwarovém průmyslu tak běžné. Měli byste přidat funkční privilegovaný bankovní účet s kontokorentním úvěrem. Jako pozadí je kontokorent možnost, kde můžete vybrat částku vyšší, než je k dispozici zůstatek na vašem účtu.
Strukturální přístup: Pomocí funkčního přístupu musím upravit svoji funkci stažení, který je již testován a základem. A přidat způsob, jak je uvedeno níže, se postará o nové požadavky.
Přístup OOP: Při použití přístupu OOP stačí napsat novou třídu s jedinečnou implementací funkce výběru. Nikdy jsme se nedotkli testované části kódu.
Další požadavek na změnu
Co když se požadavek změní dále? Rád přidáte účet na kreditní kartě s vlastním jedinečným požadavkem na vklady.
Strukturální přístup: Pomocí strukturálního přístupu musíte změnit testovaný kus kódu vkladu znovu.
Přístup OOP: Ale pomocí objektově orientovaného přístupu stačí vytvořit novou třídu s jedinečnou implementací metody vkladu (na obrázku níže zvýrazněna červeně).
Takže i když se strukturální programování zdá zpočátku jako snadný přístup, OOP dlouhodobě vyhrává.
Výhoda dědičnosti v OOP
Je ale možné argumentujte, že ve všech třídách máte opakované části kódu.
Chcete-li to překonat, vytvoříte nadřazenou třídu, řeknete „účet“ a implementujete stejnou funkci vkladu a výběru. A udělejte podřízené třídy zděděnou třídou „účtu“. Aby měli přístup k funkcím výběru a vkladu ve třídě účtu.
Funkce nemusí být implementovány jednotlivě. Toto je dědičnost v Javě. .