logo

Öröklés Java nyelven

  1. Öröklés
  2. Az öröklődés típusai
  3. Miért nem lehetséges a többszörös öröklődés a Java-ban osztály esetén?

Öröklés Java nyelven egy olyan mechanizmus, amelyben egy objektum elsajátítja egy szülőobjektum összes tulajdonságát és viselkedését. Ez egy fontos része OOP (Objektumorientált programozási rendszer).

A Java öröklődésének alapja az, hogy újat hozhat létre osztályok amelyek a meglévő osztályokra épülnek. Ha egy meglévő osztályból örököl, újra felhasználhatja a szülőosztály metódusait és mezőit. Ezenkívül új metódusokat és mezőket is hozzáadhat az aktuális osztályhoz.

Az öröklődés azt jelenti IS-Egy kapcsolat amely más néven a szülő-gyerek kapcsolat.

Miért használja az öröklődést a Java-ban?

Az Öröklésben használt kifejezések

    Osztály:Az osztály olyan objektumok csoportja, amelyek közös tulajdonságokkal rendelkeznek. Ez egy sablon vagy terv, amelyből objektumokat készítenek.Alosztály/Gyermekosztály:Az alosztály egy olyan osztály, amely örökli a másik osztályt. Származtatott osztálynak, kiterjesztett osztálynak vagy gyermekosztálynak is nevezik.Szuper osztály/szülő osztály:A szuperosztály az az osztály, ahonnan az alosztály örökli a jellemzőket. Alaposztálynak vagy szülőosztálynak is nevezik.Újrahasználhatóság:Ahogy a név is jelzi, az újrafelhasználhatóság egy olyan mechanizmus, amely megkönnyíti a meglévő osztály mezőinek és metódusainak újrafelhasználását új osztály létrehozásakor. Ugyanazokat a mezőket és metódusokat használhatja, amelyeket az előző osztályban már definiáltunk.

A Java Inheritance szintaxisa

 class Subclass-name extends Superclass-name { //methods and fields } 

A kiterjeszti a kulcsszót azt jelzi, hogy egy új osztályt készít, amely egy meglévő osztályból származik. A „kiterjed” jelentése a funkcionalitás növelése.

numpy dot termék

A Java terminológiájában az öröklött osztályt szülőnek vagy szuperosztálynak, az új osztályt pedig gyermeknek vagy alosztálynak nevezik.


Java öröklődési példa

Öröklés Java nyelven

Amint a fenti ábrán látható, a Programozó az alosztály, az Alkalmazott pedig a felső osztály. A két osztály közötti kapcsolat az Programozó IS-A alkalmazott . Ez azt jelenti, hogy a programozó egyfajta alkalmazott.

farkas kontra róka
 class Employee{ float salary=40000; } class Programmer extends Employee{ int bonus=10000; public static void main(String args[]){ Programmer p=new Programmer(); System.out.println('Programmer salary is:'+p.salary); System.out.println('Bonus of Programmer is:'+p.bonus); } } 
Tesztelje most
 Programmer salary is:40000.0 Bonus of programmer is:10000 

A fenti példában a programozó objektum hozzáférhet a saját osztály mezőjéhez, valamint az Employee osztályhoz, azaz a kód újrafelhasználhatóságához.


Az öröklődés típusai a java-ban

Az osztályok alapján háromféle öröklődés létezhet a Java-ban: egy-, többszintű és hierarchikus.

A java programozásban a többszörös és hibrid öröklés csak interfészen keresztül támogatott. A felületekről később fogunk tanulni.

Az öröklődés típusai Java nyelven

Megjegyzés: A Java osztályon keresztüli többszörös öröklése nem támogatott.

Ha egy osztály több osztályt örököl, azt többszörös öröklődésnek nevezik. Például:

Többszörös öröklődés Java nyelven

Egyetlen öröklődési példa

Ha egy osztály egy másik osztályt örököl, azt a néven ismerjük egyszeri öröklés . Az alábbi példában a Dog osztály örökli az Animal osztályt, tehát ott van az egyetlen öröklődés.

Fájl: TestInheritance.java

 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void bark(){System.out.println('barking...');} } class TestInheritance{ public static void main(String args[]){ Dog d=new Dog(); d.bark(); d.eat(); }} 

Kimenet:

rohit shetty színész
 barking... eating... 

Példa többszintű öröklődésre

Ha van egy öröklődési lánc, akkor az úgynevezett többszintű öröklődés . Amint az alábbi példában látható, a BabyDog osztály örökli a Dog osztályt, amely ismét örökli az Animal osztályt, tehát többszintű öröklődésről van szó.

Fájl: TestInheritance2.java

 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void bark(){System.out.println('barking...');} } class BabyDog extends Dog{ void weep(){System.out.println('weeping...');} } class TestInheritance2{ public static void main(String args[]){ BabyDog d=new BabyDog(); d.weep(); d.bark(); d.eat(); }} 

Kimenet:

eltolási magasság
 weeping... barking... eating... 

Példa a hierarchikus öröklődésre

Ha két vagy több osztály örököl egyetlen osztályt, azt úgy nevezzük hierarchikus öröklődés . Az alábbi példában a kutya és macska osztályok öröklik az Animal osztályt, tehát van hierarchikus öröklődés.

Fájl: TestInheritance3.java

 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void bark(){System.out.println('barking...');} } class Cat extends Animal{ void meow(){System.out.println('meowing...');} } class TestInheritance3{ public static void main(String args[]){ Cat c=new Cat(); c.meow(); c.eat(); //c.bark();//C.T.Error }} 

Kimenet:

 meowing... eating... 

K) Miért nem támogatja a többszörös öröklődést a java?

A bonyolultság csökkentése és a nyelv egyszerűsítése érdekében a többszörös öröklődés nem támogatott a Java-ban.

Tekintsünk egy forgatókönyvet, ahol A, B és C három osztály. A C osztály örökli az A és B osztályt. Ha az A és B osztálynak ugyanaz a metódusa, és a gyermek osztály objektumból hívja meg, akkor az A vagy B osztály metódusának hívása nem egyértelmű.

Mivel a fordítási hibák jobbak, mint a futásidejű hibák, a Java fordítási hibát jelenít meg, ha 2 osztályt örököl. Tehát akár ugyanaz a módszer, akár más, fordítási időhiba lesz.

 class A{ void msg(){System.out.println('Hello');} } class B{ void msg(){System.out.println('Welcome');} } class C extends A,B{//suppose if it were public static void main(String args[]){ C obj=new C(); obj.msg();//Now which msg() method would be invoked? } } 
Tesztelje most
 Compile Time Error