Hva er en virtuell funksjon i Java?



Denne artikkelen dekker begrepet virtuell funksjon i java med dets applikasjoner i polymorfisme og påkaller funksjoner i løpetid med eksempler.

Java er en som støtter begreper som polymorfisme, arv, abstraksjon, etc. Disse OOP-begrepene dreier seg om klasser , gjenstander , og medlemsfunksjoner. Den virtuelle funksjonen er et slikt konsept som hjelper i polymorfisme i løpetid. I denne bloggen vil vi lære om virtuell funksjon i . Følgende emner er diskutert i denne artikkelen.

Hva er en virtuell funksjon i Java?

Oppførselen til en virtuell funksjon kan være overstyrt med den arvende klassefunksjonen med samme navn. Det er i utgangspunktet definert i basisklassen og overstyrt i den arvede klassen.





Virtuell funksjon i Java forventes å bli definert i . Vi kan kalle den virtuelle funksjonen ved å referere til objektet til den avledede klassen ved hjelp av referansen eller pekeren til baseklassen.

hva er funksjonsoverbelastning i c ++

Hver ikke-statisk metode i Java er som standard en virtuell metode. Java har ikke et virtuelt nøkkelord som C ++ , men vi kan definere dem og bruke dem til begreper som run-time polymorphism.



Eksempel på virtuell funksjon

La oss se på et eksempel for å forstå hvordan vi kan bruke virtuelle funksjoner i Java.

class Vehicle {void make () {System.out.println ('heavy duty')}} public class Trucks extends Vehicle {void make () {System.out.println ('Transport vehicle for heavy duty')} offentlig statisk tomrom main (String args []) {Vehicle ob1 = new Trucks () ob1.make ()}}
 Produksjon: Transportkjøretøy for tungt arbeid

Hver ikke-statisk metode i Java er en virtuell funksjon bortsett fra endelig og private metoder . Metodene som ikke kan brukes til polymorfismen betraktes ikke som en virtuell funksjon.

TIL regnes ikke som en virtuell funksjon fordi en statisk metode er bundet til selve klassen. Så vi kan ikke kalle den statiske metoden fra objektnavn eller klasse for . Selv når vi overstyrer den statiske metoden, stemmer den ikke overens med begrepet polymorfisme.



Virtuell funksjon med grensesnitt

Alle Java-grensesnitt er virtuelle, de er avhengige av implementeringsklassene for å gi metodimplementeringer. Koden for utførelse velges ved kjøretid. Her er et enkelt eksempel for bedre forståelse.

grensesnitt Car {void applyBrakes ()} interface Audi implementerer Car {void applyBrakes () {System.out.println ('breaks Applied')}}

Her er ApplyBreaks () virtuell fordi funksjoner i grensesnitt er designet for å bli overstyrt.

Ren virtuell funksjon

Ren virtuell funksjon er en virtuell funksjon som vi ikke har implementeringer for. En abstrakt metode i Java kan betraktes som en ren virtuell funksjon. La oss ta et eksempel for å forstå dette bedre.

abstrakt klasse Dog {final void bark () {System.out.println ('woof')} abstract void jump () // dette er en ren virtuell funksjon} klasse MyDog utvider Dog {void jump () {System.out.println ('Jumps in the air')}} public class Runner {public static void main (String args []) {Dog ob1 = new MyDog () ob1.jump ()}}
 Produksjon: Hopper i været

Slik kan virtuell funksjon brukes med abstrakt klasse.

Run-Time polymorfisme

Kjøretidspolymorfisme er når et kall til en overstyrt metode løses ved kjøretid i stedet for kompileringstid . Den overstyrte metoden kalles gjennom referansevariabelen til baseklassen.

hvordan du avslutter programmet java
klasse Edureka {offentlig ugyldig show () {System.out.println ('velkommen til edureka')}} klasse Kurs utvider Edureka {offentlig ugyldig show () {System.out.println ('Java Certification Program')} offentlig statisk tomrom main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 Produksjon: Java-sertifiseringskurs

Poeng å huske

  • For en virtuell funksjon i Java trenger du ikke en eksplisitt erklæring. Det er noe som vi har i en basisklasse og omdefinert i den avledede klassen med samme navn.

  • Baseklassepekeren kan brukes til å referere til objektet til den avledede klassen.

  • Under gjennomføringen av programmet brukes baseklassepekeren til å kalle de avledede klassefunksjonene.

Dette bringer oss til slutten av denne artikkelen der vi har lært om den virtuelle funksjonen i Java. Jeg håper du er klar med alt som har blitt delt med deg i denne opplæringen.

Hvis du fant denne artikkelen om 'Virtual Function In Java' relevant, kan du sjekke ut et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden.

Vi er her for å hjelpe deg med hvert trinn på reisen og komme med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige som Dvalemodus & .

passere referanse i java

Hvis du kommer over noen spørsmål, kan du stille alle spørsmålene dine i kommentarfeltet i 'Virtuell funksjon i Java', og teamet vårt svarer gjerne.