Prehľad dedičstva v Jave

Na rozdiel od iných programovacích jazykov, napríklad C, Java ponúka mechanizmus, pomocou ktorého sú dátové členy a metódy jednej triedy zdedené inou triedou. Tento proces sa v Jave nazýva Dedičnosť. Aby sa dedilo z triedy, používa sa kľúčové slovo „rozširuje“. Dedičnosť v jazyku Java umožňuje opakované použitie kódu, takže trieda musí iba napísať jedinečné vlastnosti a zvyšok kódu je možné rozšíriť z inej triedy. Trieda, ktorá zdedí po inej triede, sa nazýva podtrieda alebo podradená trieda a zdedená trieda sa nazýva rodičovská trieda alebo nadtrieda. Syntax, typy a implementácia dedičstva sa bude diskutovať v nasledujúcich častiach.

Druhy dedičstva v Jave

Dedičstvo znamená vzťah IS-A, ktorý je inak známy ako vzťah rodič-dieťa. Rodič a dieťa sú už uvedení v úvodnej časti.

Predtým, ako prejdeme na typy dedičstva v jave, najprv sa pozrime na syntax dedičstva.

syntaxe:

class apple extends fruit
(
//methods and fields
)

Apple je tu podtrieda a ovocie je materskou triedou. To znamená, že jablko má určité jedinečné vlastnosti a má aj vlastnosti ovocia.

V Jave sú 4 rôzne typy dedičnosti.

  • Jednotné dedičstvo
  • Viacúrovňové dedičstvo
  • Hierarchické dedičstvo
  • Viacnásobné dedičstvo (pomocou rozhraní)

Pozrime sa na každú z nich podrobne.

1. Jediné dedičstvo

Trieda, ktorá rozširuje iba jednu triedu. V nasledujúcom príklade trieda jabĺk rozširuje ovocie triedy.

tj Ovocie je nadtrieda a Apple je podtrieda, ktorá rozširuje vlastnosti a správanie triedy Ovocie.

Nasleduje ukážka jedného dedičstva v Jave.

kód:

//Java program to demonstrate Single Inheritance
//parent class
class fruit (
public void taste()
(
System.out.println("Fruits are sweet");
)
)
//child class of fruit
class apple extends fruit
(
public void shape()
(
System.out.println("Apple is round");
)
)
public class InheritanceExample
(
public static void main(String() args) (
apple fr = new apple(); //object of child class
fr.taste(); //call method of parent class
fr.shape(); //call method of child class
)
)

Výkon:

2. Viacúrovňové dedičstvo

V tomto type dedičstva sa trieda rozšíri z inej triedy a odvodená trieda bude fungovať ako základná trieda pre inú triedu.

Napríklad na obrázku je štvorkolka triedy rodičovská trieda a auto je odvodená trieda štvorkolesovej triedy. Vozidlo triedy môže byť zároveň základnou triedou triedy Maruti.

kód:

//Java program to demonstrate Multiple Inheritance
//parent class
class fourwheeler (
public void wheels()
(
System.out.println("I have 4 wheels");
)
)
//child class of fourwheeler and parent of maruti
class car extends fourwheeler
(
public void type()
(
System.out.println("I'm a car");
)
)
//child class of car class
class maruti extends car
(
public void comp()
(
System.out.println("I'm maruti");
)
)
public class InheritanceExample
(
public static void main(String() args) (
maruti fr = new maruti(); //object of child class
fr.wheels();
fr.type();
fr.comp();
)
)

Výkon:

3. Hierarchické dedičstvo

V hierarchickom dedičstve má základná trieda viac ako jednu podradenú triedu, čo znamená, že vlastnosti triedy získavajú rôzne triedy.

Napríklad vozidlo triedy má podtriedy áut, bicyklov, skútrov.

kód:

//Java program to demonstrate Hierarchical Inheritance
//parent class
class vehicle (
public void wheels()
(
System.out.println("I have wheels");
)
)
//first child class of vehicle class
class bike extends vehicle
(
public void countwl()
(
System.out.println("I am a bike and has 2 wheels");
)
)
//second child class of vehicle class
class car extends vehicle
(
public void countwlc()
(
System.out.println("I am a car and has 4 wheels");
)
)
//third child class of vehicle class
class scooter extends vehicle
(
public void countwls()
(
System.out.println("I am a scooter and has 2 wheels");
)
)
public class InheritanceExample
(
public static void main(String() args) (
scooter sc = new scooter(); //object of scooter class
sc.wheels();
sc.countwls();
car c = new car(); //object of car class
c.wheels();
c.countwlc();
bike b= new bike();//object of bike class
b.wheels();
b.countwl();
)
)

Výkon:

4. Viacnásobné dedičstvo

Viacnásobné dedičstvo v jave je typ dedičstva, v ktorom má trieda viac ako jednu nadradenú triedu.

Napríklad trieda C nadobúda vlastnosti tried A aj B.

Avšak v Jave sa viacnásobné dedičstvo dá dosiahnuť iba pomocou rozhraní.

Predpokladajme, že viac dedení je implementovaných rovnako ako iné typy dedičstva, môže sa vyskytnúť chyba kompilácie nasledovne.

kód:

//Java program to demonstrate multiple Inheritance
//parent class
class A
(
public void hh()
(
System.out.println("A is working");
)
)
class B
(
public void hh()
(
System.out.println("B is working");
)
)
class C extends A, B
(
//code for class c
)
public class InheritanceExample
(
public static void main(String() args) (
C sc = new C(); //object of C class
C.hh();
)
)

Výstup sa tu nezobrazí, pretože obsahuje chybu kompilácie.

Dôležitosť dedičstva v Jave

  • Opätovné použitie kódu: Dedičnosť pomáha pri znižovaní prepisovania kódu. tj Kód môžu byť opakovane použité inými triedami a podradená trieda musí písať iba svoje vlastné jedinečné vlastnosti. To znižuje časovú náročnosť a zložitosť kódu.
  • Pre potlačenie metódy: Metóda, ktorá už existuje v nadradenej triede, je deklarovaná podradenou triedou, potom je známa ako nahradenie metódy.
Poznámka: Predpokladajme, že ak by sa trieda nemala opätovne použiť, môže sa použiť kľúčové slovo final.

syntaxe:

final class A
(
. . .
)
Class B extends A
(
. . .
)

V takom prípade sa vygeneruje chyba, ktorá hovorí „Nedá sa dediť od posledného A“.

záver

Dedičnosť v Jave je vlastnosť, ktorou vlastnosti a správanie sa triedy získava iná trieda, aby sa zabezpečila opakovaná použiteľnosť kódu. V Jave existujú rôzne typy dedičstva, ako napríklad Single Inheritance, Multi-level Inheritance, Hierarchical Inheritance a Multiple Inheritance v Java. V tomto dokumente je popísaných niekoľko dôležitých aspektov dedičstva.

Odporúčané články

Toto je sprievodca dedičstvom v jazyku Java. Tu diskutujeme dôležitosť a rôzne typy dedičnosti v jave spolu so syntaxou, príkladmi a implementáciou kódu. Viac informácií nájdete aj v nasledujúcich článkoch

  1. JScrollPane v Jave
  2. Relácie v PHP
  3. Triedenie v Jave
  4. Čo je to Java Garbage Collector?
  5. Java Deployment Tools
  6. Prevláda v Jave
  7. Dedičnosť v PHP

Kategórie: