Hvad er en virtuel funktion i Java?



Denne artikel dækker begrebet virtuel funktion i java med dets applikationer inden for polymorfisme og påberåbning af funktioner ved kørsel med eksempler.

Java er en som understøtter begreber som polymorfisme, arv, abstraktion osv. Disse OOP-begreber drejer sig om klasser , genstande og medlemsfunktioner. Den virtuelle funktion er et sådant koncept, der hjælper med run-time polymorfisme. I denne blog lærer vi om virtuel funktion i . Følgende emner diskuteres i denne artikel.

Hvad er en virtuel funktion i Java?

Opførelsen af ​​en virtuel funktion kan være tilsidesat med den arvende klassefunktion med samme navn. Det er grundlæggende defineret i basisklassen og tilsidesat i den arvede klasse.





data videnskab hvad er det

Virtuel funktion i Java forventes at blive defineret i . Vi kan kalde den virtuelle funktion ved at henvise til objektet for den afledte klasse ved hjælp af referencen eller markøren til baseklassen.

Hver ikke-statisk metode i Java er som standard en virtuel metode. Java har ikke et virtuelt nøgleord som C ++ , men vi kan definere dem og bruge dem til begreber som run-time polymorphism.



Eksempel på virtuel funktion

Lad os se på et eksempel for at forstå, hvordan vi kan bruge virtuelle funktioner i Java.

klasse Vehicle {void make () {System.out.println ('heavy duty')}} offentlig klasse Trucks udvider Vehicle {void make () {System.out.println ('Transport vehicle for heavy duty')} offentlig statisk ugyldig main (String args []) {Vehicle ob1 = new Trucks () ob1.make ()}}
 Produktion: Transportkøretøj til tunge opgaver

Hver ikke-statisk metode i Java er en virtuel funktion undtagen endelig og private metoder . De metoder, der ikke kan bruges til polymorfismen, betragtes ikke som en virtuel funktion.

TIL betragtes ikke som en virtuel funktion, fordi en statisk metode er bundet til selve klassen. Så vi kan ikke kalde den statiske metode fra objektnavn eller klasse for . Selv når vi tilsidesætter den statiske metode, svarer den ikke til begrebet polymorfisme.



Virtuel funktion med grænseflader

Alle Java-grænseflader er virtuelle, de er afhængige af implementeringsklasser for at levere metodeimplementeringer. Koden til udførelse vælges ved kørselstidspunktet. Her er et simpelt eksempel for bedre forståelse.

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

Her er ApplyBreaks () virtuel, fordi funktioner i grænseflader er designet til at blive tilsidesat.

Ren virtuel funktion

Ren virtuel funktion er en virtuel funktion, som vi ikke har implementeringer for. En abstrakt metode i Java kan betragtes som en ren virtuel funktion. Lad os tage et eksempel for at forstå dette bedre.

abstrakt klasse Hund {endelig ugyldig bark () {System.out.println ('woof')} abstrakt ugyldigt spring () // dette er en ren virtuel funktion} klasse MyDog udvider Hund {ugyldigt spring () {System.out.println ('Jumps in the air')}} public class Runner {public static void main (String args []) {Dog ob1 = new MyDog () ob1.jump ()}}
 Produktion: Hopper i luften

Sådan kan virtuel funktion bruges med abstrakt klasse.

Kørselstidspolymorfisme

Kørselstidspolymorfisme er, når et opkald til en tilsidesat metode løses ved kørsel i stedet for kompileringstid . Den tilsidesatte metode kaldes gennem basisklassens referencevariabel.

klasse Edureka {public void show () {System.out.println ('welcome to edureka')}} class Course udvider Edureka {public void show () {System.out.println ('Java Certification Program')} offentlig statisk ugyldighed main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 Produktion: Java-certificeringskursus

Point at huske

  • For en virtuel funktion i Java behøver du ikke en eksplicit erklæring. Det er enhver som vi har i en basisklasse og omdefineret i den afledte klasse med samme navn.

  • Basisklassemarkøren kan bruges til at henvise til objektet for den afledte klasse.

  • Under udførelsen af ​​programmet bruges baseklassemarkøren til at kalde de afledte klassefunktioner.

Dette bringer os til slutningen af ​​denne artikel, hvor vi har lært om den virtuelle funktion i Java. Jeg håber, du er klar over alt, hvad der er delt med dig i denne vejledning.

Hvis du fandt denne artikel om 'Virtuel funktion i Java' relevant, skal du tjekke en betroet online læringsvirksomhed med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.

konvertere streng til array php

Vi er her for at hjælpe dig med hvert trin på din rejse og komme med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige synes godt om Dvale & .

Hvis du støder på spørgsmål, er du velkommen til at stille alle dine spørgsmål i kommentarfeltet i 'Virtuel funktion i Java', og vores team vil med glæde svare.