Què és una funció virtual a Java?



Aquest article tracta del concepte de funció virtual a Java amb les seves aplicacions en polimorfisme i invoca funcions en temps d'execució amb exemples.

Java és un fitxer que admet conceptes com polimorfisme, herència, abstracció, etc. Aquests conceptes de POO giren al voltant classes , objectes i funcions de membre. La funció virtual és un d'aquests conceptes que ajuda en el polimorfisme en temps d'execució. En aquest bloc, coneixerem la funció virtual a . Els temes següents es tracten en aquest article.

Què és una funció virtual a Java?

El comportament d'una funció virtual pot ser anul·lat amb la funció de classe hereva amb el mateix nom. Bàsicament es defineix a la classe base i es substitueix a la classe heretada.





S'espera que la funció virtual a Java es defineixi al fitxer . Podem anomenar la funció virtual fent referència a l'objecte de la classe derivada mitjançant la referència o el punter de la classe base.

Tots els mètodes no estàtics de Java són per defecte un mètode virtual. Java no té cap paraula clau virtual com C ++ , però els podem definir i utilitzar per a conceptes com el polimorfisme en temps d'execució.



com ordenar una matriu en ordre ascendent c ++

Exemple de funció virtual

Vegem un exemple per entendre com podem utilitzar les funcions virtuals a Java.

class Vehicle {void make () {System.out.println ('heavy duty')}} public class Camions amplia Vehicle {void make () {System.out.println ('Vehicle de transport per a treballs pesats')} public static void main (String args []) {Vehicle ob1 = new Trucks () ob1.make ()}}
 Sortida: Vehicle de transport per a treballs pesats

Tots els mètodes no estàtics de Java són una funció virtual, tret de final i mètodes privats . Els mètodes que no es poden utilitzar per al polimorfisme no es consideren una funció virtual.

A no es considera una funció virtual perquè un mètode estàtic està lligat a la pròpia classe. Per tant, no podem anomenar el mètode estàtic des del nom o classe de l'objecte . Fins i tot quan anul·lem el mètode estàtic, aquest no ressona amb el concepte de polimorfisme.



Funció virtual amb interfícies

Totes les interfícies Java són virtuals, es basen en les classes d'implementació per proporcionar implementacions de mètodes. El codi per a l'execució es selecciona en temps d'execució. Aquí teniu un exemple senzill per a una millor comprensió.

interfície Car {void applyBrakes ()} interfície Audi implementa Car {void applyBrakes () {System.out.println ('breaks Applied')}}

Aquí applyBreaks () és virtual perquè les funcions de les interfícies estan dissenyades per anul·lar-se.

Funció virtual pura

La funció virtual pura és una funció virtual per a la qual no tenim implementacions. Un mètode abstracte a Java es pot considerar com una funció virtual pura. Prenguem un exemple per entendre-ho millor.

classe abstracta Dog {final void bark () {System.out.println ('woof')} abstract void jump () // aquesta és una funció virtual pura} classe MyDog amplia 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 ()}}
 Sortida: Salts a l'aire

Així es pot utilitzar la funció virtual amb la classe abstracta.

Polimorfisme en temps d'execució

El polimorfisme en temps d'execució és quan es resol una crida a un mètode anul·lat en temps d'execució en lloc de temps de compilació . El mètode anul·lat s’anomena a través de la variable de referència de la classe base.

classe Edureka {public void show () {System.out.println ('welcome to edureka')}} class Curs amplia Edureka {public void show () {System.out.println ('Programa de certificació Java')} public static void main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 Sortida: Curs de certificació Java

Punts per recordar

  • Per a una funció virtual a Java, no necessiteu una declaració explícita. És qualsevol que tenim en una classe base i que hem redefinit en la classe derivada amb el mateix nom.

  • El punter de classe base es pot utilitzar per referir-se a l'objecte de la classe derivada.

  • Durant l'execució del programa, s'utilitza el punter de classe base per cridar a les funcions de classe derivades.

Això ens porta al final d’aquest article, on hem après sobre la funció virtual a Java. Espero que tingueu clar tot el que us ha estat compartit en aquest tutorial.

Si heu trobat rellevant aquest article sobre 'Funció virtual a Java', consulteu el document una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món.

Estem aquí per ajudar-vos en cada pas del vostre viatge i oferir un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per conceptes bàsics com avançats de Java juntament amb diversos M'agrada Hibernar & .

Si teniu alguna pregunta, no dubteu a fer-vos totes les vostres preguntes a la secció de comentaris de 'Funció virtual a Java' i el nostre equip estarà encantat de respondre-us.