Mi a virtuális funkció a Java-ban?



Ez a cikk a java virtuális funkciójának fogalmát ismerteti a polimorfizmusban való alkalmazásával és a függvények futás közbeni meghívásával példákkal.

A Java egy amely olyan fogalmakat támogat, mint a polimorfizmus, az öröklődés, az absztrakció stb. Ezek az OOP-k fogalmai körül forognak osztályok , tárgyakat és tagfunkciók. A virtuális funkció egy ilyen fogalom, amely segíti a futási idejű polimorfizmust. Ebben a blogban megtudhatjuk a virtuális funkciót a . A cikk a következő témákat tárgyalja.

Mi a virtuális funkció a Java-ban?

A virtuális függvény viselkedése lehet felülírják azonos nevű öröklődő osztályfüggvénnyel. Alapvetően az alaposztályban van meghatározva, az öröklött osztályban felülírva.





A Java virtuális funkcióját várhatóan a . A virtuális függvényt úgy hívhatjuk meg, hogy a származtatott osztály objektumára hivatkozunk az alaposztály hivatkozásának vagy mutatójának felhasználásával.

A Java minden nem statikus metódusa alapértelmezés szerint virtuális módszer. A Java-nak nincs virtuális kulcsszava C ++ , de definiálhatjuk és felhasználhatjuk olyan fogalmakra, mint a futásidejű polimorfizmus.



Virtuális funkció példa

Nézzünk meg egy példát, hogy megértsük, hogyan használhatjuk a virtuális függvényeket a Java-ban.

osztályú jármű {void make () {System.out.println ('heavy duty')}} public class Teherautók kiterjesztik Jármű {void make () {System.out.println ('Transport vehicle for heavy duty')} public static void main (String args []) {Ob1 jármű = új teherautók () ob1.make ()}}
 Kimenet: Szállító jármű nagy teherbírású

A Java minden nem statikus módszere virtuális függvény, kivéve végső és magán módszerek . Azokat a módszereket, amelyek nem alkalmazhatók a polimorfizmusra, nem tekintjük virtuális függvénynek.

hadoop könnyen megtanulható

NAK NEK nem tekinthető virtuális függvénynek, mert egy statikus módszer magához az osztályhoz van kötve. Tehát nem hívhatjuk meg a statikus metódust objektum nevéből vagy osztályából . Még akkor is, ha felülírjuk a statikus módszert, ez nem felel meg a polimorfizmus fogalmának.



Virtuális funkció interfészekkel

Az összes Java interfész virtuális, a megvalósítási osztályokra támaszkodnak a módszer megvalósításának biztosításához. A végrehajtás kódját futás közben választják ki. Itt van egy egyszerű példa a jobb megértéshez.

interfész Car {void ApplyBrakes ()} interfész Az Audi implementálja a Car {void ApplyBrakes () {System.out.println ('pert alkalmazva')}}

Itt az ApplyBreaks () virtuális, mert az interfészek funkcióit felülírásra tervezték.

string a mai napig java-ban

Tiszta virtuális funkció

A tiszta virtuális függvény olyan virtuális függvény, amelyre nincs megvalósításunk. A Java elvont módszere tiszta virtuális függvénynek tekinthető. Vegyünk egy példát, hogy ezt jobban megértsük.

absztrakt osztály Kutya {final void bark () {System.out.println ('woof')} abstract void jump () // ez egy tiszta virtuális függvény} osztály A MyDog kiterjeszti a kutyát {void jump () {System.out.println ('Ugrás a levegőben')}} public class Runner {public static void main (String args []) {Kutya ob1 = new MyDog () ob1.jump ()}}
 Kimenet: Ugrik a levegőben

Így használható a virtuális függvény az absztrakt osztállyal.

Futásidejű polimorfizmus

A futásidejű polimorfizmus az, amikor egy felülbírált módszer meghívását futás közben oldják meg, nem pedig fordítási idő . Az felülbírált módszert az alaposztály referencia változóján keresztül hívják meg.

class Edureka {public void show () {System.out.println ('welcome to edureka')}} class Course extended Edureka {public void show () {System.out.println ('Java Certification Program')} public static void main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 Kimenet: Java tanúsító tanfolyam

Mutat emlékezni

  • A Java virtuális funkcióinak használatához nincs szükség kifejezett deklarációra. Bármilyen hogy van egy alaposztályunkban és újradefiniáljuk az azonos nevű származtatott osztályban.

  • Az alaposztály mutatóval hivatkozhatunk a származtatott osztály objektumára.

  • A program végrehajtása során az alaposztály mutatót használják a származtatott osztályfüggvények meghívására.

    java mély másolat vs sekély másolat

Ezzel a cikk végére jutunk, ahol megismerkedtünk a Java virtuális funkciójával. Remélem, tisztában van azzal, amit megosztott veled ebben az oktatóanyagban.

Ha relevánsnak találta ezt a cikket a „Virtuális funkciók Java-ban” témakörben, nézze meg a egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóból álló hálózata van az egész világon.

Azért vagyunk itt, hogy segítsünk az utazás minden lépésében, és kidolgozzunk egy tananyagot, amelyet olyan hallgatók és szakemberek számára tervezünk, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Java programozásban, és kiképezze mind az alapvető, mind a fejlett Java koncepciókra a különféle megoldásokkal együtt tetszik Hibernálás & .

Ha bármilyen kérdése merülne fel, nyugodtan tegye fel minden kérdését a „Virtuális funkció Java-ban” megjegyzés részben, és csapatunk örömmel válaszol.