Vad är en virtuell funktion i Java?



Den här artikeln täcker begreppet virtuell funktion i java med dess tillämpningar inom polymorfism och åberopande av funktioner vid körning med exempel.

Java är ett som stöder begrepp som polymorfism, arv, abstraktion etc. Dessa OOP-begrepp kretsar kring klasser , objekt och medlemsfunktioner. Den virtuella funktionen är ett sådant koncept som hjälper till att köra polymorfism under körning. I den här bloggen lär vi oss om virtuell funktion i . Följande ämnen diskuteras i den här artikeln.

Vad är en virtuell funktion i Java?

Beteendet hos en virtuell funktion kan vara åsidosatt med den ärvande klassfunktionen med samma namn. Det definieras i grunden i basklassen och åsidosätts i den ärvda klassen.





Virtuell funktion i Java förväntas definieras i . Vi kan anropa den virtuella funktionen genom att hänvisa till objektet för den härledda klassen med basklassens referens eller pekare.

Varje icke-statisk metod i Java är som standard en virtuell metod. Java har inte ett virtuellt nyckelord som C ++ , men vi kan definiera dem och använda dem för begrepp som körtidspolymorfism.



Exempel på virtuell funktion

Låt oss titta på ett exempel för att förstå hur vi kan använda virtuella funktioner 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')} offentligt statiskt tomrum main (String args []) {Vehicle ob1 = new Trucks () ob1.make ()}}
 Produktion: Transportfordon för tunga transporter

Varje icke-statisk metod i Java är en virtuell funktion förutom slutlig och privata metoder . Metoderna som inte kan användas för polymorfism betraktas inte som en virtuell funktion.

TILL anses inte vara en virtuell funktion eftersom en statisk metod är bunden till själva klassen. Så vi kan inte anropa den statiska metoden från objektnamn eller klass för . Även när vi åsidosätter den statiska metoden resonerar den inte med begreppet polymorfism.



Virtuell funktion med gränssnitt

Alla Java-gränssnitt är virtuella, de litar på att implementeringsklasserna tillhandahåller metodimplementeringar. Koden för körning väljs vid körning. Här är ett enkelt exempel för bättre förståelse.

gränssnitt Car {void applyBrakes ()} gränssnitt Audi implementerar Car {void applyBrakes () {System.out.println ('breaks Applied')}}

Här är ApplyBreaks () virtuellt eftersom funktioner i gränssnitt är utformade för att åsidosättas.

Ren virtuell funktion

Ren virtuell funktion är en virtuell funktion som vi inte har implementeringar för. En abstrakt metod i Java kan betraktas som en ren virtuell funktion. Låt oss ta ett exempel för att förstå detta bättre.

är hadoop lätt att lära sig
abstrakt klass Dog {final void bark () {System.out.println ('woof')} abstract void jump () // detta är en ren virtuell funktion} class MyDog förlänger 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 ()}}
 Produktion: Hoppar i luften

Så här kan virtuell funktion användas med abstrakt klass.

Runtidspolymorfism

Körtidspolymorfism är när ett samtal till en åsidosatt metod löses vid körning istället för sammanställningstid . Den åsidosatta metoden anropas genom basklassens referensvariabel.

klass Edureka {public void show () {System.out.println ('welcome to edureka')}} class Course extends Edureka {public void show () {System.out.println ('Java Certification Program')} public static void main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 Produktion: Java-certifieringskurs

Poäng att komma ihåg

  • För en virtuell funktion i Java behöver du inte en uttrycklig deklaration. Det är något som vi har i en basklass och omdefinieras i den härledda klassen med samma namn.

  • Basklasspekaren kan användas för att hänvisa till objektet för den härledda klassen.

  • Under genomförandet av programmet används basklasspekaren för att anropa de härledda klassfunktionerna.

Detta leder oss till slutet av den här artikeln där vi har lärt oss om den virtuella funktionen i Java. Jag hoppas att du är tydlig med allt som har delats med dig i den här handledningen.

Om du tyckte att den här artikeln om ”Virtual Function In Java” var relevant, kolla in ett pålitligt online-lärande företag med ett nätverk med mer än 250 000 nöjda elever spridda över hela världen.

Vi är här för att hjälpa dig med varje steg på din resa och komma med en läroplan som är utformad för studenter och yrkesverksamma som vill vara Java-utvecklare. Kursen är utformad för att ge dig ett försprång till Java-programmering och träna dig för både kärn- och avancerade Java-koncept tillsammans med olika tycka om Övervintra & .

Om du stöter på några frågor är du välkommen att ställa alla dina frågor i kommentarfältet i 'Virtuell funktion i Java' så svarar vårt team gärna.