Τι είναι μια εικονική λειτουργία στην Java;

Αυτό το άρθρο καλύπτει την έννοια της εικονικής λειτουργίας σε Java με τις εφαρμογές της στον πολυμορφισμό και τις λειτουργίες επίκλησης στο χρόνο εκτέλεσης με παραδείγματα.

Η Java είναι μια που υποστηρίζει έννοιες όπως ο πολυμορφισμός, η κληρονομιά, η αφαίρεση κ.λπ. Αυτές οι έννοιες OOP περιστρέφονται γύρω τάξεις , αντικείμενα , και λειτουργίες μέλους. Η εικονική λειτουργία είναι μια τέτοια ιδέα που βοηθά στον πολυμορφισμό του χρόνου εκτέλεσης. Σε αυτό το blog, θα μάθουμε για την εικονική λειτουργία στο . Τα ακόλουθα θέματα συζητούνται σε αυτό το άρθρο.

Τι είναι μια εικονική λειτουργία στην Java;

Η συμπεριφορά μιας εικονικής λειτουργίας μπορεί να είναι παρακάμπτεται με τη συνάρτηση κληρονομικής τάξης με το ίδιο όνομα. Ορίζεται βασικά στην κατηγορία βάσης και αντικαθίσταται στην κληρονομική τάξη.





Η εικονική συνάρτηση στην Java αναμένεται να οριστεί στο . Μπορούμε να καλέσουμε την εικονική συνάρτηση παραπέμποντας στο αντικείμενο της παραγόμενης κλάσης χρησιμοποιώντας την αναφορά ή το δείκτη της βασικής κλάσης.

Κάθε μη στατική μέθοδος στην Java είναι από προεπιλογή μια εικονική μέθοδος. Η Java δεν έχει εικονική λέξη-κλειδί όπως C ++ , αλλά μπορούμε να τα ορίσουμε και να τα χρησιμοποιήσουμε για έννοιες όπως ο πολυμορφισμός χρόνου εκτέλεσης.



Παράδειγμα εικονικής λειτουργίας

Ας ρίξουμε μια ματιά σε ένα παράδειγμα για να κατανοήσουμε πώς μπορούμε να χρησιμοποιήσουμε εικονικές λειτουργίες στην Java.

class Vehicle {void make () {System.out.println ('heavy duty')}} δημόσια κλάση Trucks επεκτείνει το όχημα {void make () {System.out.println ('Transport Vehicle for heavy duty')} δημόσιο στατικό κενό main (String args []) {Vehicle ob1 = new Trucks () ob1.make ()}}
 Παραγωγή: Όχημα μεταφοράς βαρέων καθηκόντων

Κάθε μη στατική μέθοδος στην Java είναι μια εικονική συνάρτηση εκτός από το τελικός και ιδιωτικές μεθόδους . Οι μέθοδοι που δεν μπορούν να χρησιμοποιηθούν για τον πολυμορφισμό δεν θεωρείται εικονική συνάρτηση.

ΠΡΟΣ ΤΟ δεν θεωρείται εικονική συνάρτηση επειδή μια στατική μέθοδος συνδέεται με την ίδια την τάξη. Επομένως, δεν μπορούμε να καλέσουμε τη στατική μέθοδο από το όνομα του αντικειμένου ή την κλάση για . Ακόμη και όταν παρακάμπτουμε τη στατική μέθοδο, δεν ταιριάζει με την έννοια του πολυμορφισμού.



Εικονική λειτουργία με διασυνδέσεις

Όλες οι διεπαφές Java είναι εικονικές, βασίζονται στις τάξεις υλοποίησης για την παροχή εφαρμογών μεθόδου. Ο κωδικός εκτέλεσης επιλέγεται κατά το χρόνο εκτέλεσης. Εδώ είναι ένα απλό παράδειγμα για καλύτερη κατανόηση.

πρόγραμμα πολλαπλασιασμού matrix σε Java
διεπαφή Αυτοκινήτου {void applyBrakes ()} διεπαφή Audi εφαρμόζει Αυτοκίνητο {void applyBrakes () {System.out.println ('break Applied')}}

Εδώ το applyBreaks () είναι εικονικό επειδή οι λειτουργίες στις διεπαφές έχουν σχεδιαστεί για να παρακάμπτονται.

Καθαρή εικονική λειτουργία

Η καθαρή εικονική λειτουργία είναι μια εικονική συνάρτηση για την οποία δεν έχουμε υλοποιήσεις. Μια αφηρημένη μέθοδος στην Java μπορεί να θεωρηθεί ως καθαρή εικονική λειτουργία. Ας πάρουμε ένα παράδειγμα για να το κατανοήσουμε καλύτερα.

abstract class Dog {final void bark () {System.out.println ('woof')} abstract void jump () // Αυτή είναι μια καθαρή εικονική λειτουργία} Η κλάση MyDog επεκτείνει το Dog {void jump () {System.out.println ('Jumps in the air')}} Runner δημόσιας τάξης {public static void main (String args []) {Dog ob1 = new MyDog () ob1.jump ()}}
 Παραγωγή: Πηδά στον αέρα

Αυτός είναι ο τρόπος με τον οποίο η εικονική λειτουργία μπορεί να χρησιμοποιηθεί με αφηρημένη κλάση.

Πολυμορφισμός χρόνου εκτέλεσης

Ο πολυμορφισμός του χρόνου εκτέλεσης είναι όταν μια κλήση σε μια παράκαμψη μεθόδου επιλύεται στο χρόνο εκτέλεσης αντί για χρόνος κατάρτισης . Η παράκαμψη μέθοδος καλείται μέσω της μεταβλητής αναφοράς της βασικής κλάσης.

class Edureka {public void show () {System.out.println ('Welcome to edureka')}} Το μάθημα class επεκτείνει το Edureka {public void show () {System.out.println ('Java Certification Program')} δημόσιο στατικό κενό main (String args []) {Edureka ob1 = νέο μάθημα () ob1.show ()}}
 Παραγωγή: Μάθημα πιστοποίησης Java

Σημεία που πρέπει να θυμάστε

  • Για μια εικονική συνάρτηση στην Java, δεν χρειάζεστε ρητή δήλωση. Είναι οποιοδήποτε που έχουμε σε μια βασική τάξη και επαναπροσδιορίσαμε στην παράγωγη τάξη με το ίδιο όνομα.

  • Ο δείκτης κατηγορίας βάσης μπορεί να χρησιμοποιηθεί για να αναφερθεί στο αντικείμενο της κλάσης που προέρχεται.

    τύποι συναρτήσεων σε sql
  • Κατά την εκτέλεση του προγράμματος, ο δείκτης βασικής κλάσης χρησιμοποιείται για την κλήση των παραγόμενων συναρτήσεων κλάσης.

Αυτό μας φέρνει στο τέλος αυτού του άρθρου όπου έχουμε μάθει για την εικονική λειτουργία στην Java. Ελπίζω να είστε ξεκάθαροι με όλα όσα έχουν μοιραστεί μαζί σας σε αυτό το σεμινάριο.

Εάν βρήκατε αυτό το άρθρο σχετικά με την 'Εικονική λειτουργία σε Java', ανατρέξτε στο μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με ένα δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο.

Είμαστε εδώ για να σας βοηθήσουμε σε κάθε βήμα στο ταξίδι σας και να βρείτε ένα πρόγραμμα σπουδών που έχει σχεδιαστεί για μαθητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για τις βασικές όσο και για τις προηγμένες ιδέες Java μαζί με διάφορες σαν Παραχειμάζω & .

Εάν συναντήσετε οποιεσδήποτε ερωτήσεις, μη διστάσετε να κάνετε όλες τις ερωτήσεις σας στην ενότητα σχολίων του 'Virtual Function In Java' και η ομάδα μας θα χαρεί να απαντήσει.