what is polymorphism java tutorial with examples
Αυτό το σεμινάριο εξηγεί τι είναι ο Πολυμορφισμός στην Ιάβα, οι τύποι πολυμορφισμού και πώς να εφαρμόσετε τον πολυμορφισμό μεταγλώττισης με παραδείγματα:
Η λέξη 'Πολυμορφισμός' προέρχεται από δύο λέξεις, δηλαδή «Πολυ» που σημαίνει πολλά και « μορφές Σημαίνει έντυπα. Έτσι, ο πολυμορφισμός σημαίνει πολλές μορφές. Σε μια γλώσσα προγραμματισμού, μπορούμε να πούμε ότι ένα αντικείμενο μπορεί να έχει πολλές μορφές, και ως εκ τούτου το αντικείμενο είναι πολυμορφικό.
Ο πολυμορφισμός είναι ένα από τα πιο σημαντικά χαρακτηριστικά του OOP και μας επιτρέπει να εκφράσουμε ένα χαρακτηριστικό (ένα αντικείμενο ή ένα μήνυμα ή μέθοδο ή έναν χειριστή) σε διάφορες μορφές.
=> Ρίξτε μια ματιά στον οδηγό για αρχάριους Java εδώ.
Τι θα μάθετε:
Εισαγωγή στον πολυμορφισμό στην Ιάβα
Η πολυμορφική οντότητα συμπεριφέρεται διαφορετικά υπό διαφορετικά σενάρια.
Για παράδειγμα, θεωρήστε έναν τελεστή ‘+’ (προσθήκη) στην Java. Αυτός είναι ένας δυαδικός τελεστής και παίρνει δύο τελεστές. Όταν οι τελεστές που μεταβιβάζονται στον τελεστή ‘+’ είναι αριθμοί, εκτελείται μια λειτουργία προσθήκης που επιστρέφει το άθροισμα δύο αριθμών.
Όταν οι τελεστές αλλάζουν σε τύπο συμβολοσειράς, ο τελεστής «+» δεν προσθέτει τα αντικείμενα συμβολοσειράς, αλλά συνδυάζει ή ενώνει τα περιεχόμενα της συμβολοσειράς για να σχηματίσει μια προκύπτουσα τρίτη συμβολοσειρά.
Για παράδειγμα, αν ' ένας ' και ' δύο Τότε είναι τα περιεχόμενα δύο αντικειμένων String «Ένα» + «δύο» θα έχει ως αποτέλεσμα ' ένα δύο '. Αυτό είναι συνένωση.
Στην Java, όλα τα αντικείμενα είναι πολυμορφικά καθώς όλα προέρχονται από την κατηγορία 'Αντικείμενο' και έτσι εκπληρώνουν τη σχέση 'IS-A' με την κατηγορία Αντικειμένων.
Η πρόσβαση σε ένα αντικείμενο γίνεται πάντα μέσω μιας μεταβλητής αναφοράς του συγκεκριμένου τύπου κλάσης. Μόλις δηλωθεί μια μεταβλητή αναφοράς ενός συγκεκριμένου τύπου, δεν μπορεί να τροποποιηθεί. Ωστόσο, εάν η μεταβλητή αναφοράς δεν δηλωθεί ως 'Τελική', τότε μπορούμε να την εκχωρήσουμε ξανά ώστε να οδηγεί σε άλλα αντικείμενα.
Ο τύπος αυτής της αναφοράς αντικειμένου θα αποφασίσει τις μεθόδους ή τις συναρτήσεις κλάσης που πρέπει να κληθούν.
Για παράδειγμα,Αν υπάρχει κλάση ABC και κλάση XYZ που προέρχεται από ABC, και οι δύο τάξεις έχουν πολυμορφική μέθοδο func ().
class ABC{ void func(){} } class XYZ extends ABC{ void func() {} }
Ας δημιουργήσουμε μια αναφορά τύπου ABC.
ποιες συσκευές λειτουργούν στο επίπεδο 2 osi
obj = new XYZ ();
Τώρα όταν καλούμε τη μέθοδο func (), καθώς το αντικείμενο που επισημαίνεται από το obj είναι της κλάσης XYZ, θα χρησιμοποιηθεί η μέθοδος func () από την κλάση XYZ.
Όπως έχουμε δει στο παραπάνω παράδειγμα, η μέθοδος func () έχει διαφορετικές υλοποιήσεις αλλά το ίδιο πρωτότυπο. Ανάλογα με το αντικείμενο που επισημαίνεται από το αντικείμενο αναφοράς, έχουμε την κατάλληλη εφαρμογή σε αυτό το σενάριο. Αυτός είναι ο πολυμορφισμός.
Ας συζητήσουμε λεπτομερώς τον πολυμορφισμό στην Ιάβα.
Παράδειγμα Πολυμορφισμού Java
Ας καταλάβουμε ένα απλό παράδειγμα πολυμορφισμού στην Java με τη λειτουργία προσθήκης όπως συζητήθηκε προηγουμένως.
Εδώ χρησιμοποιούμε δύο μεθόδους με το ίδιο όνομα αλλά διαφορετικές παραμέτρους. Η πρώτη συνάρτηση δέχεται δύο ακέραιες παραμέτρους και η δεύτερη μέθοδος δέχεται δύο παραμέτρους συμβολοσειράς.
Ανάλογα με τον τύπο των παραμέτρων που έχουν περάσει, καλείται η κατάλληλη μέθοδος και είτε προσθέτει δύο ακέραιους αριθμούς και εκτυπώνει το αποτέλεσμα είτε συνδυάζει τις δύο χορδές και εκτυπώνει την προκύπτουσα συμβολοσειρά.
Το πρόγραμμα Java δίνεται παρακάτω:
class Addition_operation{ //method to add two integers void addition_func(int num1,int num2){ System.out.println('ABC::addition_func:' + (num1+num2)); } //overloaded method to add two strings void addition_func(String str1, String str2){ String result = str1 + ' ' + str2; System.out.println('XYZ::addition_func:' + result); } } public class Main { public static void main(String() args) { Addition_operation abc = new Addition_operation(); //create a class object abc.addition_func (3,4); //calls 1st method abc.addition_func ('Hello' , 'World!'); //calls 2nd method } }
Παραγωγή:
Εδώ έχουμε δει ότι όταν την πρώτη φορά περνάμε δύο ακέραιους παραμέτρους στην προσθήκη_func, τότε καλείται η πρώτη μέθοδος. Στη δεύτερη κλήση συνάρτησης, περνάμε δύο παραμέτρους τύπου συμβολοσειράς, και ως εκ τούτου καλείται η δεύτερη υπερφορτωμένη μέθοδος.
Τύποι πολυμορφισμού
Η Java υποστηρίζει δύο τύπους πολυμορφισμού:
- Πολυμορφισμός μεταγλώττισης
- Πολυμορφισμός χρόνου εκτέλεσης
Όπως υποδηλώνει το όνομα, ο πολυμορφισμός του χρόνου μεταγλώττισης εκτελείται στο χρόνο μεταγλώττισης και ο πολυμορφισμός χρόνου εκτέλεσης πραγματοποιείται στο χρόνο εκτέλεσης.
Όπως φαίνεται στο παραπάνω σχήμα, ο πολυμορφισμός χρόνου μεταγλώττισης εφαρμόζεται μέσω υπερφόρτωσης. Μπορούμε να υπερφορτώσουμε είτε τη μέθοδο είτε τον χειριστή. Ο πολυμορφισμός χρόνου εκτέλεσης επιτυγχάνεται μέσω του Overriding.
Σε αυτό το σεμινάριο, θα συζητήσουμε λεπτομερώς τον πολυμορφισμό του Compile-time. Θα ακολουθήσουμε τον πολυμορφισμό χρόνου εκτέλεσης στο επόμενο σεμινάριο.
Πολυμορφισμός μεταγλώττισης χρόνου στην Ιάβα
Ο πολυμορφισμός του χρόνου μεταγλώττισης είναι επίσης γνωστός ως «στατικός πολυμορφισμός». Ως μέρος του πολυμορφισμού του χρόνου μεταγλώττισης, οποιοσδήποτε πολυμορφισμός πρόκειται να εκτελεστεί, εκτελείται κατά το χρόνο μεταγλώττισης.
Στην Java, ο πολυμορφισμός μεταγλώττισης εκτελείται χρησιμοποιώντας « Μέθοδος υπερφόρτωσης '. Χρησιμοποιώντας μέθοδο υπερφόρτωσης, μπορούμε να έχουμε μία ή περισσότερες μεθόδους με το ίδιο όνομα και να διαφοροποιούνται μόνο σε αριθμούς ή σε τύπο ή σειρά παραμέτρων.
Η μέθοδος υπερφόρτωσης είναι η πιο κοινή εφαρμογή του πολυμορφισμού χρόνου μεταγλώττισης στην Java. Η Java υποστηρίζει επίσης υπερφόρτωση χειριστή.
Τι είναι η υπερφόρτωση στην Java γενικά;
Η υπερφόρτωση στην Java είναι μια διαδικασία που έχει περισσότερες από μία μεθόδους με το ίδιο όνομα και τύπο επιστροφής, αλλά διαφέρει ως προς τη σειρά, τον αριθμό και τους τύπους ορισμάτων. Ονομάζεται επίσης μέθοδος υπερφόρτωσης γενικά.
Μέθοδος υπερφόρτωσης σε Java
Η μέθοδος υπερφόρτωσης είναι μια εφαρμογή πολυμορφισμού μεταγλώττισης χρόνου στην Java. Όταν έχουμε μία ή περισσότερες μεθόδους με το ίδιο όνομα και / ή τύπους επιστροφής αλλά με διαφορετικές λίστες παραμέτρων, τότε λέμε ότι έχουμε «υπερφορτώσει» τις μεθόδους.
Έτσι, σε μια δεδομένη τάξη, μπορούμε να έχουμε διάφορες μεθόδους με το ίδιο όνομα αλλά διαφορετικές λίστες επιχειρημάτων.
Πώς επικαλούμεθα υπερφορτωμένες μεθόδους; Ή πώς ξέρει ο μεταγλωττιστής ποια μέθοδος θα καλείται;
Η επίκληση της ακριβούς μεθόδου που ταιριάζει με την κλήση πραγματοποιείται ανάλογα με τη λίστα παραμέτρων.
Έχουμε ήδη δει ότι μια τάξη στην Java μπορεί να έχει περισσότερους από έναν κατασκευαστές. Στην περίπτωση των κατασκευαστών, η λίστα ορισμάτων ή τα επιχειρήματα που δέχεται ο κατασκευαστής είναι διαφορετική σε όλους τους κατασκευαστές. Αυτό είναι ένα παράδειγμα υπερφόρτωσης. Έτσι, η υπερφόρτωση κατασκευαστή είναι μια βασική μορφή μεθόδου υπερφόρτωσης στην Java.
Τώρα ας δούμε πώς να υπερφορτώσετε μια μέθοδο στη Java;
Η Java παρέχει τρεις τρόπους υπερφόρτωσης μεθόδου ανάλογα με τις παραλλαγές στη λίστα παραμέτρων / ορίσματος.
# 1) Τύπος παραμέτρων
Μπορούμε να υπερφορτώσουμε μεθόδους στην Java ανάλογα με τον τύπο δεδομένων των παραμέτρων.
Εξετάστε το ακόλουθο παράδειγμα όπου έχουμε δώσει πρωτότυπα τριών μεθόδων.
προσθήκη (int, int);
προσθήκη (int, float)
προσθήκη (String, String);
Όπως φαίνεται παραπάνω, έχουμε το ίδιο όνομα μεθόδου και στις τρεις περιπτώσεις και τον ίδιο αριθμό παραμέτρων, αλλά κάθε κλήση μεθόδου έχει διαφορετικούς τύπους παραμέτρων.
Εφόσον οι μέθοδοι έχουν διαφορετικούς τύπους παραμέτρων, μπορούμε να πούμε ότι οι μέθοδοι είναι υπερφορτωμένες. Όταν επικαλείται τη μέθοδο, ο μεταγλωττιστής αποφασίζει για τον τύπο δεδομένων της παραμέτρου και ανάλογα με τον τύπο δεδομένων της λίστας παραμέτρων που παρέχεται με την κλήση μεθόδου, καλείται η κατάλληλη μέθοδος.
Για παράδειγμα,εάν έχουμε μια μέθοδο κλήσης όπως παρακάτω:
προσθήκη (3, 3.5);
Στην παραπάνω κλήση μεθόδου, μπορούμε να δούμε ότι η πρώτη παράμετρος είναι τύπου int ενώ η δεύτερη παράμετρος είναι τύπου float. Όταν συναντηθεί η παραπάνω κλήση, ο μεταγλωττιστής επιλύει τη λίστα παραμέτρων και στη συνέχεια καλεί την κατάλληλη μέθοδο που είναι η δεύτερη μέθοδος παραπάνω.
Τώρα ας εφαρμόσουμε ένα πλήρες πρόγραμμα Java για να δείξουμε τη μέθοδο υπερφόρτωσης με βάση τους τύπους δεδομένων των παραμέτρων.
class MethodOverload { //overloaded method - char parameter public void printParam(char ch) { System.out.println('Input character:' + ch); } //overloaded method - int parameter public void printParam(int num) { System.out.println('Input Number:' + num); } } class Main { public static void main(String args()) { MethodOverload obj = new MethodOverload(); obj.printParam('A'); //call overloaded method (char ) obj.printParam(10); //call overloaded method (int ) } }
Παραγωγή:
# 2) Αριθμός παραμέτρων
Μια άλλη εφαρμογή της μεθόδου υπερφόρτωσης είναι με υπερφόρτωση μεθόδων με διαφορετικό αριθμό παραμέτρων στην κλήση συνάρτησης.
Για παράδειγμα,ας εξετάσουμε τις ακόλουθες δηλώσεις μεθόδου:
πρόσθετο (int, int);
πρόσθετο (int, int, int);
Στις παραπάνω δηλώσεις μεθόδου, η πρώτη δήλωση μεθόδου έχει δύο παραμέτρους και η δεύτερη δήλωση έχει τρεις παραμέτρους. Όταν καλείται μια συνάρτηση, ο μεταγλωττιστής ελέγχει τον αριθμό των παραμέτρων και στη συνέχεια επιλύει κατάλληλα την κλήση μεθόδου.
Το παρακάτω παράδειγμα δείχνει το πρόγραμμα που χρησιμοποιεί μέθοδο υπερφόρτωσης με βάση τον αριθμό των παραμέτρων.
class MethodOverload { //overloaded method - 1 parameter public void printParam(char ch) { System.out.println(ch); } //overloaded method - 2 parameters public void printParam(char ch, int num) { System.out.println('Character: ' + ch + ' ; '+ 'Number:' +num); } } class Main { public static void main(String args()) { MethodOverload obj = new MethodOverload(); obj.printParam('A'); //call overloaded method (1 ) obj.printParam('A',10); //call overloaded method (2 ) } }
Παραγωγή:
Σε αυτό το παράδειγμα, έχουμε δύο μεθόδους υπερφορτωμένες με βάση τον αριθμό των παραμέτρων. Η πρώτη μέθοδος παίρνει μία παράμετρο και η δεύτερη μέθοδος παίρνει δύο παραμέτρους. Στην κύρια μέθοδο, καλούμε και τις δύο μεθόδους η μία μετά την άλλη και ο μεταγλωττιστής επιλύει την κλήση συνάρτησης ανάλογα με τον καθορισμένο αριθμό παραμέτρων.
# 3) Ακολουθία παραμέτρων
Η τρίτη προσέγγιση εφαρμογής μεθόδου υπερφόρτωσης βασίζεται στην ακολουθία παραμέτρων σε υπερφορτωμένες μεθόδους.
Εξετάστε το ακόλουθο παράδειγμα της δήλωσης μεθόδου,
άθροισμα (int, float) ·
άθροισμα (float, int)
Εδώ έχουμε ένα υπερφορτωμένο άθροισμα μεθόδου. Στην πρώτη δήλωση, οι παράμετροι είναι int και float. Στη δεύτερη δήλωση επίσης, οι παράμετροι είναι int και float αλλά αλλάζει η σειρά τους στη λίστα παραμέτρων.
Τώρα η παράμετρος float εμφανίζεται πρώτη, ενώ η παράμετρος int είναι δεύτερη. Μπορούμε να επιτύχουμε μέθοδο υπερφόρτωσης, αλλάζοντας τη σειρά των παραμέτρων.
ο παρακάτω το πρόγραμμα Java το αποδεικνύει.
class MethodOverload { //overloaded method - char,int parameter public void printParam(char ch, int num) { System.out.println('Input character:' + ch + ' ; ' + 'Input Number:' + num); } //overloaded method - int,char parameter public void printParam(int num, char ch) { System.out.println('Input Number:' + num + ' ; ' + 'Input Character:' + ch); } } class Main { public static void main(String args()) { MethodOverload obj = new MethodOverload(); obj.printParam('A', 100); //call overloaded method (char,int) obj.printParam(100, 'A'); //call overloaded method (int,char) } }
Παραγωγή:
Στο παραπάνω πρόγραμμα, έχουμε μια μέθοδο υπερφόρτωσης printParam που έχει παραμέτρους int και char των οποίων η σειρά αλλάζει σε δύο δηλώσεις μεθόδου.
Μη έγκυρες περιπτώσεις υπερφόρτωσης μεθόδου
Μέχρι στιγμής έχουμε συζητήσει τη μέθοδο υπερφόρτωσης χρησιμοποιώντας τη λίστα παραμέτρων. Δεν έχουμε ακόμη εξετάσει τον τύπο της μεθόδου επιστροφής. Λάβετε υπόψη ότι δεν υπερφορτώνουμε μεθόδους που βασίζονται σε τύπους επιστροφής.
Για παράδειγμα, εάν δύο μέθοδοι έχουν το ίδιο όνομα και τις ίδιες λίστες παραμέτρων αλλά διαφορετικούς τύπους επιστροφής, τότε δεν λέμε ότι αυτές οι δύο μέθοδοι είναι υπερφορτωμένες. Αυτή η περίπτωση καθίσταται άκυρη για υπερφόρτωση.
Αν λοιπόν έχουμε τις ακόλουθες δηλώσεις:
I int (int, int);
Άθροισμα συμβολοσειράς (int, int);
Σε αυτήν την περίπτωση, ο μεταγλωττιστής θα εκδώσει ένα σφάλμα καθώς δύο μέθοδοι δεν είναι υπερφορτωμένες. Ως εκ τούτου, μόνο βάσει των τύπων επιστροφής, οι μέθοδοι δεν διαφοροποιούνται.
Ας αποδείξουμε αυτήν τη μη έγκυρη περίπτωση χρησιμοποιώντας ένα πρόγραμμα Java.
class OverloadDemo { public double myMethod(int num1, int num2) { System.out.println('OverloadDemo::myMethod returns double'); return num1+num2; } public int myMethod(int var1, int var2) { System.out.println('OverloadDemo::myMethod returns int'); return var1-var2; } } class Main { public static void main(String args()) { OverloadDemo obj2= new OverloadDemo(); obj2.myMethod(10,10); obj2.myMethod(20,12); } }
Στο παραπάνω πρόγραμμα, η μέθοδος myMethod έχει δύο πρωτότυπα. Ένα πρωτότυπο παίρνει δύο παραμέτρους int και επιστρέφει διπλά. Το πρωτότυπο της δεύτερης μεθόδου λαμβάνει δύο παραμέτρους int και επιστρέφει ένα int.
Έτσι, όταν καταρτίζουμε αυτό το πρόγραμμα, έχουμε την παρακάτω έξοδο.
Παραγωγή:
Το παραπάνω σφάλμα σύνταξης δείχνει ότι η μέθοδος δηλώνεται δύο φορές. Αυτό σημαίνει ότι ο μεταγλωττιστής δεν θεωρεί ότι αυτές οι μέθοδοι υπερφορτώνονται μόνο με βάση τον τύπο επιστροφής.
Υπερφόρτωση χειριστή
Υπερφόρτωση χειριστή είναι ένας μηχανισμός υπερφόρτωσης στον οποίο δίνεται διαφορετική έννοια σε έναν υπάρχοντα χειριστή.
Όπως έχουμε συζητήσει στην εισαγωγική ενότητα αυτού του σεμιναρίου, ένας τελεστής προσθήκης '+' είναι ένα κλασικό παράδειγμα υπερφόρτωσης του χειριστή.
Όταν οι τελεστές αυτού του τελεστή είναι αριθμητικοί, τότε ο τελεστής + επιστρέφει το σύνολο των δύο τιμών. Αλλά όταν οι τελεστές είναι τύπου String, τότε το αποτέλεσμα της λειτουργίας προσθήκης είναι η συνδυασμένη συμβολοσειρά. Σημειώστε ότι Στην Java, μπορούμε να υπερφορτώσουμε μόνο τον τελεστή + (προσθήκη).
Αυτός ο χειριστής εκτελεί δύο λειτουργίες:
- Προσθήκη ακέραιων ή αριθμητικών τιμών.
- Συνδυαστικές χορδές
Ως εκ τούτου, η υποστήριξη υπερφόρτωσης χειριστή είναι περιορισμένη στην Java, σε αντίθεση με το C ++, όπου μπορούμε να υπερφορτώσουμε σχεδόν όλους τους χειριστές που δεν έχουν αρκετούς όπως το μέγεθος του, ο χειριστής κουκκίδων κ.λπ.
Το παρακάτω πρόγραμμα δείχνει υπερφόρτωση χειριστή στην Java.
class OperatorOverload { //overloaded method for concatenating two strings void operator(String str1, String str2) { String resultStr = str1 + str2; System.out.println('Concatenated String: ' + resultStr); } //overloaded method for adding two numbers void operator(int num1, int num2) { int result = num1 + num2; System.out.println('Sum of two numbers : ' + result); } } class Main { public static void main(String() args) { OperatorOverload obj = new OperatorOverload(); obj.operator(10, 15); //add two numbers obj.operator('Hello ', 'World!!'); //concatenate two strings } }
Παραγωγή:
Στο παραπάνω πρόγραμμα, έχουμε υπερφορτώσει το χειριστή «+». Όταν περνάμε δύο ακέραιες τιμές στη μέθοδο υπερφόρτωσης, επιστρέφεται ένα άθροισμα δύο ακέραιων αριθμών και όταν περάσουν δύο συμβολοσειρές το αποτέλεσμα είναι η συνδυασμένη συμβολοσειρά.
Ορισμένα σημεία που πρέπει να σημειωθούν σχετικά με την υπερφόρτωση και τον πολυμορφισμό μεταγλώττισης.
- Η μέθοδος υπερφόρτωσης είναι ο τρόπος εφαρμογής πολυμορφισμού μεταγλώττισης χρόνου που είναι επίσης γνωστός ως στατικός πολυμορφισμός.
- Ο στατικός πολυμορφισμός είναι επίσης γνωστός ως δέσμευση πρώιμης σύνδεσης ή δέσμευση χρόνου.
- Καθώς η δέσμευση παραμέτρων και η λειτουργία κλήσης συμβαίνουν κατά το χρόνο μεταγλώττισης, η υπερφόρτωση ονομάζεται δέσμευση χρόνου μεταγλώττισης.
- Μπορούμε να υπερφορτώσουμε μόνο τον τελεστή ‘+’ στην Java και εκτελεί την προσθήκη δύο ακέραιων ή συνένωσης δύο χορδών.
Συχνές Ερωτήσεις
Q # 1) Γιατί χρειαζόμαστε τον πολυμορφισμό στην Java;
Απάντηση: Ο πολυμορφισμός μας επιτρέπει να έχουμε πολλές υλοποιήσεις για ένα αντικείμενο. Μέσω της υπερφόρτωσης μεθόδων, δεν χρειάζεται να έχουμε πάρα πολλές μεθόδους με διαφορετικά ονόματα που είναι δύσκολο να θυμηθούμε. Μπορούμε αντ 'αυτού να έχουμε υπερφορτωμένες μεθόδους, ώστε να μπορούμε να έχουμε μια σαφή εφαρμογή των μεθόδων που εκτελούν παρόμοιες λειτουργίες.
Επίσης, υπερισχύοντα βοηθήματα στη σωστή εφαρμογή της κληρονομιάς που μας επιτρέπει να προσθέσουμε περισσότερη λειτουργικότητα στις υπάρχουσες τάξεις με ευκολότερο τρόπο.
Q # 2) Τι είναι ο πολυμορφισμός OOP;
Απάντηση: Ο αντικειμενοστρεφής ορισμός προγραμματισμού του πολυμορφισμού αναφέρεται στην ικανότητα των γλωσσών προγραμματισμού να εφαρμόζουν ένα αντικείμενο σε διάφορες μορφές. Ο πολυμορφισμός ορίζεται επίσης ως η ικανότητα ενός προγράμματος να παρακάμψει τις μεθόδους από τη μητρική τάξη στην παράγωγη τάξη για να έχει επιπλέον λειτουργικότητα.
Q # 3) Μπορούμε να υπερφορτώσουμε και να παρακάμψουμε την κύρια μέθοδο;
Απάντηση: Όχι. Δεν μπορούμε να παρακάμψουμε τη στατική κύρια μέθοδο. Αν και μπορούμε να υπερφορτώσουμε την κύρια μέθοδο, η JVM δεν θα καλέσει ποτέ την υπερφορτωμένη κύρια μέθοδο. Επομένως, η καλύτερη απάντηση είναι να μην υπερφορτώσετε ή να παρακάμψετε την κύρια μέθοδο.
Q # 4) Μπορούν οι Κατασκευαστές να υπερφορτωθούν;
Απάντηση: Ναι, μπορούμε να υπερφορτώσουμε τους κατασκευαστές στην Java με τον ίδιο τρόπο που υπερφορτώνουμε τις μεθόδους Java. Οι κατασκευαστές έχουν συνήθως το ίδιο όνομα αλλά έναν διαφορετικό αριθμό ορισμάτων.
Ε # 5) Γιατί είναι χρήσιμη η μέθοδος υπερφόρτωσης;
Απάντηση: Μπορούμε να γράψουμε καθαρό κώδικα χρησιμοποιώντας μέθοδο υπερφόρτωσης και γίνεται επίσης αναγνώσιμο καθώς έχουμε μεθόδους με το ίδιο όνομα. Έτσι, εάν εφαρμόζουμε λειτουργικότητα για διάφορους τύπους δεδομένων, τότε μπορούμε να υπερφορτώσουμε τις μεθόδους και θα είναι ευκολότερο να διαχωρίσουμε τον κώδικα.
συμπέρασμα
Ο πολυμορφισμός στην Java σημαίνει ότι ένα αντικείμενο μπορεί να έχει πολλές μορφές. Ο πολυμορφισμός στην Java έχει δύο τύπους, δηλαδή τον πολυμορφισμό χρόνου μεταγλώττισης και τον πολυμορφισμό χρόνου εκτέλεσης. Ο πολυμορφισμός του χρόνου μεταγλώττισης γίνεται κατά το χρόνο μεταγλώττισης. Ο πολυμορφισμός χρόνου μεταγλώττισης είναι στατικός και εφαρμόζεται μέσω μεθόδου υπερφόρτωσης και υπερφόρτωσης χειριστή.
oracle pl sql ερωτήσεις συνέντευξης για 5 χρόνια εμπειρίας
Ο πολυμορφισμός χρόνου εκτέλεσης εκτελείται κατά το χρόνο εκτέλεσης και είναι δυναμικός. Εφαρμόζεται χρησιμοποιώντας παράκαμψη μεθόδου.
Σε αυτό το σεμινάριο, έχουμε δει τους τρόπους για την εφαρμογή υπερφόρτωσης μεθόδου. Συζητήσαμε επίσης λεπτομερώς την υπερφόρτωση των χειριστών. Η Java υποστηρίζει μόνο την υπερφόρτωση του χειριστή «+».
=> Διαβάστε ολόκληρη τη σειρά Easy Java Training.
Συνιστώμενη ανάγνωση
- Το Java String περιέχει () Μέθοδος Εκμάθησης με Παραδείγματα
- Java String length () Μέθοδος με παραδείγματα
- Java substring () Μέθοδος - Εκμάθηση με παραδείγματα
- Java Float Tutorial με παραδείγματα προγραμματισμού
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- TreeMap In Java - Tutorial with Java TreeMap Παραδείγματα
- Εκμάθηση συμβολοσειράς Java | Μέθοδοι συμβολοσειράς Java με παραδείγματα
- Java Double - Tutorial με παραδείγματα προγραμματισμού