¿Qué es una función virtual en Java?



Este artículo cubre el concepto de función virtual en Java con sus aplicaciones en polimorfismo e invocando funciones en tiempo de ejecución con ejemplos.

Java es un que admite conceptos como polimorfismo, herencia, abstracción, etc. Estos conceptos de POO giran en torno a clases , objetos y funciones de los miembros. La función virtual es uno de esos conceptos que ayuda en el polimorfismo en tiempo de ejecución. En este blog, aprenderemos sobre la función virtual en . Los siguientes temas se tratan en este artículo.

¿Qué es una función virtual en Java?

El comportamiento de una función virtual puede ser anulado con la función de clase heredada con el mismo nombre. Básicamente se define en la clase base y se reemplaza en la clase heredada.





Se espera que la función virtual en Java se defina en el . Podemos llamar a la función virtual haciendo referencia al objeto de la clase derivada utilizando la referencia o el puntero de la clase base.

cómo usar swing java

Cada método no estático en Java es por defecto un método virtual. Java no tiene una palabra clave virtual como C++ , pero podemos definirlos y usarlos para conceptos como polimorfismo en tiempo de ejecución.



Ejemplo de función virtual

Echemos un vistazo a un ejemplo para comprender cómo podemos usar funciones virtuales en Java.

class Vehículo {void make () {System.out.println ('heavy duty')}} public class Trucks extiende Vehicle {void make () {System.out.println ('Transport vehicle for heavy duty')} public static void main (String args []) {Vehicle ob1 = new Trucks () ob1.make ()}}
 Salida: Vehículo de transporte para trabajos pesados

Cada método no estático en Java es una función virtual excepto para final y métodos privados . Los métodos que no se pueden utilizar para el polimorfismo no se consideran una función virtual.

A no se considera una función virtual porque un método estático está vinculado a la propia clase. Entonces no podemos llamar al método estático desde el nombre del objeto o la clase para . Incluso cuando anulamos el método estático, no resuena con el concepto de polimorfismo.



Función virtual con interfaces

Todas las interfaces de Java son virtuales, se basan en las clases de implementación para proporcionar implementaciones de métodos. El código para la ejecución se selecciona en tiempo de ejecución. Aquí hay un ejemplo simple para una mejor comprensión.

interfaz Car {void applyBrakes ()} interfaz Audi implementa Car {void applyBrakes () {System.out.println ('breaks aplicados')}}

Aquí applyBreaks () es virtual porque las funciones en las interfaces están diseñadas para ser reemplazadas.

Función virtual pura

La función virtual pura es una función virtual para la que no tenemos implementaciones. Un método abstracto en Java se puede considerar como una función virtual pura. Tomemos un ejemplo para entender esto mejor.

abstract class Dog {ladrido final void () {System.out.println ('guau')} abstract void jump () // esta es una función virtual pura} class MyDog extiende Dog {void jump () {System.out.println ('Saltos en el aire')}} public class Runner {public static void main (String args []) {Dog ob1 = new MyDog () ob1.jump ()}}
 Salida: Saltos en el aire

Así es como se puede usar la función virtual con la clase abstracta.

Polimorfismo en tiempo de ejecución

El polimorfismo en tiempo de ejecución es cuando una llamada a un método anulado se resuelve en tiempo de ejecución en lugar de tiempo de compilación . El método reemplazado se llama a través de la variable de referencia de la clase base.

es-una relación java
class Edureka {public void show () {System.out.println ('bienvenido a edureka')}} class El curso extiende Edureka {public void show () {System.out.println ('Programa de certificación Java')} public static void main (String args []) {Edureka ob1 = new Course () ob1.show ()}}
 Salida: Curso de certificación de Java

Puntos para recordar

  • Para una función virtual en Java, no necesita una declaración explícita. Es cualquiera que tenemos en una clase base y redefinidos en la clase derivada con el mismo nombre.

  • El puntero de la clase base se puede utilizar para hacer referencia al objeto de la clase derivada.

  • Durante la ejecución del programa, el puntero de la clase base se utiliza para llamar a las funciones de la clase derivada.

Esto nos lleva al final de este artículo donde hemos aprendido sobre la función virtual en Java. Espero que tengas claro todo lo que se ha compartido contigo en este tutorial.

Si encuentra relevante este artículo sobre 'Función virtual en Java', consulte el una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.

Estamos aquí para ayudarlo en cada paso de su viaje y crear un plan de estudios diseñado para estudiantes y profesionales que desean ser desarrolladores de Java. El curso está diseñado para darle una ventaja en la programación de Java y capacitarlo para los conceptos básicos y avanzados de Java junto con varios me gusta Hibernar & .

cómo usar recortar en java

Si tiene alguna pregunta, no dude en hacer todas sus preguntas en la sección de comentarios de 'Función virtual en Java' y nuestro equipo estará encantado de responder.