Što je nasljeđivanje?
Nasljeđivanje je mehanizam u kojem jedna klasa stječe svojstvo druge klase. Na primjer, dijete nasljeđuje osobine svojih roditelja. S nasljeđivanjem možemo ponovno koristiti polja i metode postojeće klase. Stoga nasljeđivanje olakšava ponovnu upotrebu i važan je koncept OOP-a.
U ovom vodiču naučit ćete-
- Vrste nasljeđivanja
- Nasljeđivanje u Javi
- Primjer nasljeđivanja Java
- Super ključna riječ
- Naučite nasljeđivanje u OOP-ima s primjerom
Vrste nasljeđivanja
U Javi postoje razne vrste nasljeđivanja:
Jedno nasljeđivanje:
U pojedinačnom nasljeđivanju jedan razred proširuje drugi razred (samo jedan razred).
![](https://cdn.css-code.org/5427117/inheritance_in_java_oops_with_example.png.webp)
U gornjem dijagramu, klasa B proširuje se samo na klasu A. Klasa A je super klasa, a klasa B je podklasa.
Višestruko nasljeđivanje:
U višestrukom nasljeđivanju, jedna klasa koja se proteže više od jedne klase. Java ne podržava višestruko nasljeđivanje.
![](https://cdn.css-code.org/5427117/inheritance_in_java_oops_with_example_2.png.webp)
Prema gornjem dijagramu, klasa C proširuje klasu A i klasu B.
Nasljeđivanje na više nivoa:
U višerazinskom nasljeđivanju, jedna klasa može naslijediti iz izvedene klase. Stoga izvedena klasa postaje osnovna klasa za novu klasu.
![](https://cdn.css-code.org/5427117/inheritance_in_java_oops_with_example_3.png.webp)
Kao što je prikazano na dijagramu Klasa C je podrazred B, a B je podrazred Klasa A.
Hijerarhijsko nasljeđivanje:
U hijerarhijskom nasljeđivanju, jednu klasu nasljeđuju mnogi podrazredi.
![](https://cdn.css-code.org/5427117/inheritance_in_java_oops_with_example_4.png.webp)
Kao što je prikazano u gornjem primjeru, klasa B, C i D nasljeđuju istu klasu A.
Hibridno nasljeđivanje:
Hibridno nasljeđivanje kombinacija je pojedinačnog i višestrukog nasljeđivanja.
![](https://cdn.css-code.org/5427117/inheritance_in_java_oops_with_example.jpeg.webp)
Kao što je prikazano u gornjem primjeru, svi javni i zaštićeni članovi klase A nasljeđuju se u klasu D, prvo putem klase B, a zatim preko klase C.
Napomena: Java ne podržava hibridno / višestruko nasljeđivanje
Nasljeđivanje u Javi
NASLJEĐIVANJE JAVE mehanizam je u kojem jedna klasa stječe svojstvo druge klase. U Javi, kada postoji odnos "Is-A" između dvije klase, koristimo nasljeđivanje. Roditeljska klasa naziva se super klasa, a naslijeđena klasa podklasa. Ključna riječ
extends
koristi podklasa za nasljeđivanje značajki super klase.
Nasljeđivanje je važno jer dovodi do ponovne upotrebe koda.
Sintaksa nasljeđivanja Java:
class subClass extends superClass{//methods and fields}
Primjer nasljeđivanja Java
class Doctor {void Doctor_Details() {System.out.println("Doctor Details… ");}}class Surgeon extends Doctor {void Surgeon_Details() {System.out.println("Surgen Detail… ");}}public class Hospital {public static void main(String args[]) {Surgeon s = new Surgeon();s.Doctor_Details();s.Surgeon_Details();}}
Super ključna riječ
Ključna riječ super slična je ključnoj riječi "this".
Ključna riječ super može se koristiti za pristup bilo kojem članu podataka ili metodama nadređene klase.
Super ključna riječ može se koristiti na razini varijabli, metode i konstruktora.
Sintaksa:
super.();
Naučite nasljeđivanje u OOP-ima s primjerom
Razmotrimo istu bankarsku aplikaciju iz prethodnog primjera.
Trebali bismo otvoriti dvije različite vrste računa, jedan za spremanje i drugi za provjeru (poznat i kao tekući).
Usporedimo i proučimo kako kodiranju možemo pristupiti iz strukturirane i objektno orijentirane perspektive programiranja. Strukturni pristup : U strukturiranom programiranju stvorit ćemo dvije funkcije -
- Jedan za povlačenje
- A drugi za akciju pologa.
Budući da rad ovih funkcija ostaje isti na svim računima.
OOP-ov pristup : Tijekom korištenja OOP- ovog programskog pristupa. Stvorili bismo dvije klase.
- Svaki ima provedbu funkcija pologa i povlačenja.
- Ovo će višak dodatnog posla.
Zahtjev za promjenu softvera
Sada je došlo do promjene u specifikaciji zahtjeva za nešto što je tako često u industriji softvera. Trebali biste dodati privilegirani bankovni račun s funkcijom prekoračenja. Kao pozadinu, prekoračenje je mogućnost u kojoj možete podići iznos veći od raspoloživog stanja na vašem računu.
Strukturni pristup: Koristeći funkcionalni pristup, moram izmijeniti svoju funkciju povlačenja, koja je već testirana i pripremljena. A dodavanje metode kao u nastavku pobrinut će se za nove zahtjeve.
OOP-ov pristup: Koristeći OOP-ov pristup, samo trebate napisati novu klasu s jedinstvenom implementacijom funkcije povlačenja. Nikada nismo dodirnuli provjereni dio koda.
Još jedan zahtjev za promjenom
Što ako se zahtjev dodatno promijeni? Volite dodati račun kreditne kartice s vlastitim jedinstvenim zahtjevom za depozitima .
Strukturni pristup: Korištenjem strukturnog pristupa morate ponovno promijeniti provjereni dio depozitnog koda.
OOP-ov pristup : Ali koristeći objektno orijentirani pristup, samo ćete stvoriti novu klasu s njenom jedinstvenom provedbom metode polaganja (označeno crvenom bojom na donjoj slici).
Dakle, iako se strukturno programiranje u početku čini kao lak pristup, OOP pobjeđuje dugoročno.
Prednost nasljeđivanja u OOP-ima
Ali netko može tvrditi da u svim razredima imate ponovljene dijelove koda.
Da biste to prevladali, stvorite roditeljsku klasu, recite "račun" i implementirajte istu funkciju polaganja i povlačenja. I neka podređene klase budu naslijeđene klase "računa". Tako će imati pristup funkcijama povlačenja i polaganja u klasi računa.
Funkcije se ne trebaju provoditi pojedinačno. Ovo je nasljeđivanje u javi. .