Ce este o funcție virtuală în Java?



Acest articol acoperă conceptul de funcție virtuală în java cu aplicațiile sale în polimorfism și invocând funcții în timp de execuție cu exemple.

Java este un care susține concepte precum polimorfismul, moștenirea, abstractizarea, etc. Aceste concepte OOP se învârt în jurul clase , obiecte , și funcții de membru. Funcția virtuală este un astfel de concept care ajută la polimorfismul în timp de execuție. În acest blog, vom afla despre funcția virtuală în . Următoarele subiecte sunt discutate în acest articol.

Ce este o funcție virtuală în Java?

Comportamentul unei funcții virtuale poate fi suprascris cu funcția de clasă moștenitoare cu același nume. Practic este definit în clasa de bază și suprascris în clasa moștenită.





Funcția virtuală în Java este de așteptat să fie definită în . Putem apela funcția virtuală referindu-ne la obiectul clasei derivate folosind referința sau indicatorul clasei de bază.

Fiecare metodă nestatică din Java este în mod implicit o metodă virtuală. Java nu are un cuvânt cheie virtual cum ar fi C ++ , dar le putem defini și folosi pentru concepte precum polimorfismul în timpul rulării.



o diferență majoră între un hacker și un hacker etic este:

Exemplu de funcție virtuală

Să aruncăm o privire la un exemplu pentru a înțelege cum putem folosi funcțiile virtuale în Java.

class Vehicle {void make () {System.out.println ('heavy duty')}} public class Trucks extinde Vehicle {void make () {System.out.println ('Vehicul de transport pentru heavy duty')} public static void main (String args []) {Vehicul ob1 = new Trucks () ob1.make ()}}
 Ieșire: Vehicul de transport pentru vehicule grele

Fiecare metodă nestatică din Java este o funcție virtuală, cu excepția final și metode private . Metodele care nu pot fi utilizate pentru polimorfism nu sunt considerate ca o funcție virtuală.

LA nu este considerat o funcție virtuală, deoarece o metodă statică este legată de clasa însăși. Deci nu putem apela metoda statică din numele obiectului sau din clasa . Chiar și atunci când ignorăm metoda statică, aceasta nu rezonează cu conceptul de polimorfism.



Funcție virtuală cu interfețe

Toate interfețele Java sunt virtuale, se bazează pe clasele de implementare pentru a furniza implementări de metode. Codul pentru execuție este selectat în timpul rulării. Iată un exemplu simplu pentru o mai bună înțelegere.

interfață Car {void applyBrakes ()} interfață Audi implementează Car {void applyBrakes () {System.out.println ('break Applied')}}

Aici applyBreaks () este virtual deoarece funcțiile din interfețe sunt proiectate pentru a fi suprascrise.

Funcție virtuală pură

Funcția virtuală pură este o funcție virtuală pentru care nu avem implementări. O metodă abstractă în Java poate fi considerată o funcție virtuală pură. Să luăm un exemplu pentru a înțelege mai bine acest lucru.

clasa abstractă Dog {final void bark () {System.out.println ('woof')} abstract void jump () // aceasta este o funcție virtuală pură} clasa MyDog extinde 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 ()}}
 Ieșire: Salturi în aer

Acesta este modul în care funcția virtuală poate fi utilizată cu clasa abstractă.

Polimorfism în timp de execuție

Polimorfismul în timpul rulării este atunci când un apel către o metodă suprascrisă este rezolvat în timpul rulării în loc de timp de compilare . Metoda suprascrisă este apelată prin variabila de referință a clasei de bază.

clasa Edureka {public void show () {System.out.println ('welcome to edureka')}} class Curs extinde Edureka {public void show () {System.out.println ('Java Certification Program')} public static void main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 Ieșire: Curs de certificare Java

Puncte de reținut

  • Pentru o funcție virtuală în Java, nu aveți nevoie de o declarație explicită. Este orice pe care îl avem într-o clasă de bază și redefinit în clasa derivată cu același nume.

  • Pointerul clasei de bază poate fi utilizat pentru a se referi la obiectul clasei derivate.

  • În timpul execuției programului, indicatorul clasei de bază este utilizat pentru a apela funcțiile clasei derivate.

Acest lucru ne duce la sfârșitul acestui articol, unde am aflat despre funcția virtuală în Java. Sper că ești clar cu tot ce ți-a fost împărtășit în acest tutorial.

Dacă ați găsit relevant acest articol despre „Funcția virtuală în Java”, consultați o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul.

Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs. și pentru a veni cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un dezvoltator Java. Cursul este conceput pentru a vă oferi un început important în programarea Java și pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate, împreună cu diverse ca Hibernează & .

Dacă întâmpinați orice întrebare, nu ezitați să vă adresați toate întrebările în secțiunea de comentarii din „Funcția virtuală în Java”, iar echipa noastră va fi bucuroasă să vă răspundă.