Was ist eine virtuelle Funktion in Java?



Dieser Artikel behandelt das Konzept der virtuellen Funktion in Java mit seinen Anwendungen im Polymorphismus und dem Aufrufen von Funktionen zur Laufzeit anhand von Beispielen.

Java ist ein Dies unterstützt Konzepte wie Polymorphismus, Vererbung, Abstraktion usw. Diese OOPs-Konzepte drehen sich um Klassen , Objekte und Mitgliedsfunktionen. Die virtuelle Funktion ist ein solches Konzept, das beim Laufzeitpolymorphismus hilft. In diesem Blog lernen wir die virtuelle Funktion in kennen . Die folgenden Themen werden in diesem Artikel behandelt.

Was ist eine virtuelle Funktion in Java?

Das Verhalten einer virtuellen Funktion kann sein überschrieben mit der gleichnamigen ererbenden Klassenfunktion. Es wird grundsätzlich in der Basisklasse definiert und in der geerbten Klasse überschrieben.





Es wird erwartet, dass die virtuelle Funktion in Java in der definiert wird . Wir können die virtuelle Funktion aufrufen, indem wir mit der Referenz oder dem Zeiger der Basisklasse auf das Objekt der abgeleiteten Klasse verweisen.

Jede nicht statische Methode in Java ist standardmäßig eine virtuelle Methode. Java hat kein virtuelles Schlüsselwort wie C ++ , aber wir können sie definieren und für Konzepte wie Laufzeitpolymorphismus verwenden.



Beispiel für eine virtuelle Funktion

Schauen wir uns ein Beispiel an, um zu verstehen, wie wir virtuelle Funktionen in Java verwenden können.

Klasse Fahrzeug {void make () {System.out.println ('Heavy Duty')}} LKW der öffentlichen Klasse erweitert Fahrzeug {void make () {System.out.println ('Transportfahrzeug für Heavy Duty')} öffentliche statische Leere main (String args []) {Fahrzeug ob1 = new Trucks () ob1.make ()}}
 Ausgabe: Transportfahrzeug für schwere Beanspruchung

Jede nicht statische Methode in Java ist eine virtuelle Funktion mit Ausnahme von Finale und private Methoden . Die Methoden, die für den Polymorphismus nicht verwendet werden können, werden nicht als virtuelle Funktion betrachtet.

k bedeutet Clustering-Beispieldatensatz

ZU wird nicht als virtuelle Funktion betrachtet, da eine statische Methode an die Klasse selbst gebunden ist. Daher können wir die statische Methode nicht aus dem Objektnamen oder der Klasse für aufrufen . Selbst wenn wir die statische Methode überschreiben, stimmt sie nicht mit dem Konzept des Polymorphismus überein.



Virtuelle Funktion mit Schnittstellen

Alle Java-Schnittstellen sind virtuell. Sie basieren auf den implementierenden Klassen, um Methodenimplementierungen bereitzustellen. Der Ausführungscode wird zur Laufzeit ausgewählt. Hier ist ein einfaches Beispiel zum besseren Verständnis.

Schnittstelle Car {void applyBrakes ()} Schnittstelle Audi implementiert Car {void applyBrakes () {System.out.println ('Pausen angewendet')}}

Hier ist applyBreaks () virtuell, da Funktionen in Schnittstellen so ausgelegt sind, dass sie überschrieben werden.

Zeichenfolge bis heute in Java

Reine virtuelle Funktion

Die reine virtuelle Funktion ist eine virtuelle Funktion, für die wir keine Implementierungen haben. Eine abstrakte Methode in Java kann als reine virtuelle Funktion betrachtet werden. Nehmen wir ein Beispiel, um dies besser zu verstehen.

abstrakte Klasse Hund {final void bark () {System.out.println ('woof')} abstrakte leere Sprung () // dies ist eine reine virtuelle Funktion} Klasse MyDog erweitert Hund {void jump () {System.out.println ('Springt in die Luft')}} public class Runner {public statisch void main (String args []) {Dog ob1 = new MyDog () ob1.jump ()}}
 Ausgabe: Springt in die Luft

So kann die virtuelle Funktion mit abstrakten Klassen verwendet werden.

Laufzeitpolymorphismus

Laufzeitpolymorphismus ist, wenn ein Aufruf einer überschriebenen Methode zur Laufzeit statt aufgelöst wird Kompilierungszeit . Die überschriebene Methode wird über die Referenzvariable der Basisklasse aufgerufen.

Klasse Edureka {public void show () {System.out.println ('Willkommen bei edureka')}} Klasse Kurs erweitert Edureka {public void show () {System.out.println ('Java-Zertifizierungsprogramm')} public static void main (String args []) {Edureka ob1 = neuer Kurs () ob1.show ()}}
 Ausgabe: Java-Zertifizierungskurs

Punkte, die man sich merken sollte

  • Für eine virtuelle Funktion in Java benötigen Sie keine explizite Deklaration. Es ist irgendein die wir in einer Basisklasse haben und in der abgeleiteten Klasse mit dem gleichen Namen neu definiert haben.

  • Der Basisklassenzeiger kann verwendet werden, um auf das Objekt der abgeleiteten Klasse zu verweisen.

  • Während der Ausführung des Programms wird der Basisklassenzeiger verwendet, um die abgeleiteten Klassenfunktionen aufzurufen.

    Unterschied zwischen Methodenüberladung und Überschreiben in Java

Dies bringt uns zum Ende dieses Artikels, wo wir etwas über die virtuelle Funktion in Java gelernt haben. Ich hoffe, Sie sind mit allem klar, was in diesem Tutorial mit Ihnen geteilt wurde.

Wenn Sie diesen Artikel zu 'Virtuelle Funktion in Java' relevant fanden, lesen Sie die Ein vertrauenswürdiges Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt.

Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen und einen Lehrplan zu erstellen, der für Studenten und Fachleute konzipiert ist, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für Kern- als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Konzepte schulen mögen Überwintern & .

Wenn Sie auf Fragen stoßen, können Sie alle Ihre Fragen im Kommentarbereich von „Virtuelle Funktion in Java“ stellen. Unser Team beantwortet diese gerne.