Pregled nasljeđivanja u Javi
Za razliku od ostalih programskih jezika kao što je C, Java nudi mehanizam pomoću kojeg članovi podataka i metode jedne klase nasljeđuju drugu klasu. Taj je postupak u Javi poznat pod nazivom Nasljeđivanje. Da bi se naslijedilo od klase, koristi se ključna riječ 'extends'. Nasljeđivanje u Javi dopušta ponovnu upotrebu koda tako da klasa treba napisati samo jedinstvene značajke, a ostatak koda se može proširiti iz druge klase. Klasa koja nasljeđuje iz druge klase poznata je kao podrazred ili podređena klasa, a klasa koja se nasljeđuje poznata je kao nadređena klasa ili pretklasa. Sintaksa, vrste i primjena nasljeđivanja raspravljat će se u sljedećim odjeljcima.
Vrste nasljeđivanja na Javi
Nasljeđivanje označava odnos IS-A koji je inače poznat i kao odnos roditelj-dijete. Roditelj i dijete već su spomenuti u uvodnom dijelu.
Prije nego što prijeđemo na vrste nasljeđivanja u javi, prvo da vidimo sintaksu nasljeđivanja.
Sintaksa:
class apple extends fruit
(
//methods and fields
)
Ovdje je jabuka potklasa, a voće roditeljska klasa. To znači da jabuka ima određena jedinstvena svojstva, a ima i svojstva voća.
U Javi postoje 4 različite vrste nasljeđivanja.
- Jedno nasljeđivanje
- Nasljeđivanje na više razina
- Hijerarhijsko nasljeđivanje
- Višestruko nasljeđivanje (uz pomoć sučelja)
Sada ćemo pogledati svaki od njih detaljno.
1. Pojedinačno nasljeđivanje
Klasa koja se proteže samo jedna klasa. U sljedećem primjeru, jabuka klase proširuje voće klase.
tj. Voće je superklasa, a Apple je podrazred koji proširuje svojstva i ponašanje Fruit klase.
Slijedi demonstracija jedinstvenog nasljeđivanja u Javi.
Kodirati:
//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
)
)
Izlaz:
2. Nasljeđivanje na više razina
U ovoj vrsti nasljeđivanja klasa će se proširiti iz druge klase, a izvedena klasa djeluje kao osnovna klasa za neku drugu klasu.
Na primjer, na slici je klasa četverotočkaša roditeljska klasa, a automobil je izvedena klasa klase s četiri kotača. U isto vrijeme, klasa automobila može biti osnovna klasa za klasu Maruti.
Kodirati:
//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();
)
)
Izlaz:
3. Hijerarhijsko nasljeđivanje
U hijerarhijskom nasljeđivanju osnovna klasa ima više od jedne dječje klase, što znači da svojstva klase stječu raznim klasama.
Na primjer, vozilo klase ima podklase automobila, bicikala, skutera.
Kodirati:
//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();
)
)
Izlaz:
4. Višestruko nasljeđivanje
Višestruko nasljeđivanje u javi je vrsta nasljeđivanja u kojoj klasa ima više od jedne roditeljske klase.
Na primjer, klasa C stječe svojstva i klase A i klase B.
Ali u Javi se višestruko nasljeđivanje može postići samo korištenjem sučelja.
Pretpostavimo da se više nasljeđivanja implementira kao i druge vrste nasljeđivanja, može doći do pogreške pri sastavljanju na sljedeći način.
Kodirati:
//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();
)
)
Ovdje se izlaz neće prikazati jer sadrži pogrešku u vremenu prevođenja.
Važnost nasljeđivanja u Javi
- Ponovna upotreba koda: nasljeđivanje pomaže u smanjenju prepisivanja koda. tj. Kôd se može ponovo koristiti u drugim klasama, a podređena klasa mora upisati svoja jedinstvena svojstva. To smanjuje potrošnju vremena i složenost koda.
- Za preglasavanje metoda: Metoda koja je već prisutna u roditeljskoj klasi deklarira podređena klasa, tada je poznata i kao prevladavanje metode.
Sintaksa:
final class A
(
. . .
)
Class B extends A
(
. . .
)
U tom će se slučaju stvoriti pogreška koja kaže "Ne mogu se naslijediti od konačnog A".
Zaključak
Nasljeđivanje u Javi je svojstvo kojim druga klasa stječe svojstva i ponašanje klase radi osiguravanja ponovne upotrebe koda. U Javi postoje različite vrste nasljeđivanja kao što su Jedno nasljeđivanje, Nasljeđivanje na više razina, Hijerarhijsko nasljeđivanje i Više nasljeđivanje na Javi. U ovom dokumentu obrađeno je nekoliko važnih aspekata nasljeđivanja.
Preporučeni članci
Ovo je vodič za nasljeđivanje na Javi. Ovdje raspravljamo o važnosti i različitim vrstama nasljeđivanja u Javi, zajedno sa sintaksom, primjerima i implementacijom koda. Možete pogledati i sljedeće članke da biste saznali više -
- JScrollPane u Javi
- Sjednice u PHP-u
- Razvrstavanje u Javi
- Što je Java Garbage Collector?
- Alati za implementaciju Java
- Prevladavanje u Javi
- Nasljeđivanje u PHP-u