Pregled dedovanja v Javi

Za razliko od drugih programskih jezikov, kot je C, Java ponuja mehanizem, po katerem člani podatkov in metode enega razreda podedujejo drug razred. Ta proces je v Javi znan kot Dediščina (dedovanje), za dedovanje iz razreda se uporablja ključna beseda 'extends'. Dedovanje v Javi omogoča ponovno uporabo kode, tako da mora razred le napisati edinstvene lastnosti, preostanek kode pa je mogoče razširiti iz drugega razreda. Razred, ki podeduje od drugega razreda, je znan kot podrazred ali nadrejeni razred, razred, ki se podeduje, pa je znan kot nadrejeni razred ali nadrazred. Sintaksa, vrste in izvedba dedovanja bodo obravnavani v naslednjih razdelkih.

Vrste dedovanja v Javi

Dedovanje pomeni odnos IS-A, ki je sicer znan kot odnos med staršem in otrokom. Starš in otrok sta že omenjena v uvodnem delu.

Preden se premaknemo na vrste Dedovanja v javi, si najprej oglejmo sintakso dedovanja.

Sintaksa:

class apple extends fruit
(
//methods and fields
)

Tu je jabolko podrazred, sadje pa matični razred. To pomeni, da ima jabolko določene edinstvene lastnosti in ima tudi lastnosti sadja.

V Javi obstajajo 4 različne vrste dedovanja.

  • Enkratna dednost
  • Dvigovanje na več ravneh
  • Hierarhična dediščina
  • Večkratno dedovanje (s pomočjo vmesnikov)

Zdaj pa si podrobno oglejmo vsako od njih.

1. Enojno dedovanje

Razred, ki sega samo v en razred. V naslednjem primeru razred jabolka razširi razred sadja.

tj. Sadje je razred, Apple pa je podrazred, ki širi lastnosti in obnašanje razreda Sadje.

Sledi predstavitev enotnega dedovanja na Javi.

Koda:

//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
)
)

Izhod:

2. dedovanje na več ravneh

Pri tej vrsti dedovanja se bo razred razširil iz drugega razreda in izvedeni razred deluje kot osnovni razred za nekatere druge razrede.

Na sliki je na primer matični razred štirikolesnika, avto pa izpeljani razred štirikolesnega razreda. Obenem je lahko avtomobil razreda osnovni razred za razred Maruti.

Koda:

//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();
)
)

Izhod:

3. Hierarhična dednost

V hierarhičnem dedovanju ima osnovni razred več kot en otroški razred, kar pomeni, da lastnosti razreda pridobijo različni razredi.

Na primer, v razredu imajo vozila podrazrede avtomobili, kolesa, skuterji.

Koda:

//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();
)
)

Izhod:

4. Večkratno dedovanje

Več dedovanja v javi je vrsta dedovanja, v katerem ima razred več kot en matični razred.

Na primer, razred C pridobi lastnosti tako razreda A kot razreda B.

Toda na Javi je večkratno dedovanje mogoče doseči le z uporabo vmesnikov.

Predpostavimo, da se več dedovanja izvaja kot druge vrste dedovanja, lahko pride do napake v času prevajanja na naslednji način.

Koda:

//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();
)
)

Tu izhod ne bo prikazan, saj vsebuje napako med sestavljanjem.

Pomen dedovanja v Javi

  • Ponovna uporaba kode: Dedovanje pomaga pri zmanjšanju prepisa kode. tj. Kodo lahko ponovno uporabijo drugi razredi, otroški razred pa mora zapisati le svoje edinstvene lastnosti. To zmanjšuje porabo časa in zapletenost kode.
  • Za preglasitev metode: Metoda, ki je že prisotna v nadrejenem razredu, razglasi nadrejeni razred, potem je znana kot metoda preglasitve.
Opomba: Če predloga ne bi smeli ponovno uporabiti, lahko uporabimo ključno besedo končni.

Sintaksa:

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

V tem primeru se ustvari napaka, ki pravi, da "Ne morem podedovati od končnega A".

Zaključek

Dedovanje v Javi je lastnost, s katero druge lastnosti pridobi lastnosti in obnašanje razreda, da se zagotovi ponovna uporaba kode. Na Javi obstajajo različne vrste dedovanja, kot so enojno dedovanje, večstopenjsko dedovanje, hierarhično dedovanje in večkratno dedovanje na Javi. V tem dokumentu je zajetih več pomembnih vidikov dedovanja.

Priporočeni članki

To je vodnik za Dedovanje v Javi. Tukaj razpravljamo o pomenu in različnih vrstah dedovanja v javi, skupaj s skladnjo, primeri in implementacijo kode. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. JScrollPane v Javi
  2. Seje v PHP
  3. Razvrščanje v Javi
  4. Kaj je Java Garbage Collector?
  5. Java Tools Deployment Tools
  6. Prevladovanje v Javi
  7. Dedovanje v PHP