Βασική διαφορά : Η υπερφόρτωση έχει δύο μεθόδους της ίδιας κλάσης με το ίδιο όνομα και με διαφορετικούς τύπους παραμέτρων, ενώ η υπέρβαση σημαίνει ότι έχουν δύο διαφορετικές μεθόδους στην ίδια κλάση με τους ίδιους τύπους παραμέτρων αλλά με διαφορετικές υλοποιήσεις.
Οι υπερισχύουσες μέθοδοι και οι υπερφορτώσεις είναι δύο έννοιες ή τεχνικές που χρησιμοποιούνται στις γλώσσες προγραμματισμού της Java. Και οι δύο έννοιες επιτρέπουν στον προγραμματιστή να παρέχει διαφορετικές υλοποιήσεις για μεθόδους με το ίδιο όνομα. Αυτό το άρθρο διαφοροποιεί τις δύο έννοιες προγραμματισμού.
Η υπερφόρτωση λειτουργίας ή η υπερφόρτωση μεθόδων επιτρέπει τη δημιουργία πολλών μεθόδων με το ίδιο όνομα, στην ίδια κλάση αλλά διαφορετικές μεταξύ τους στην είσοδο και τον τύπο εξόδου της λειτουργίας. Απλώς ορίζεται ως η ικανότητα μιας λειτουργίας να εκτελεί διαφορετικές εργασίες.
Κατά την υπερφόρτωση, οι υλοποιήσεις μεθόδων μοιράζονται το ίδιο όνομα επειδή εκτελούν παρόμοιες εργασίες. Επίσης, η υπερφόρτωση θεωρείται πολυμορφική. Οι λειτουργίες που έχουν διαφορετικές υλοποιήσεις εξαρτώνται από τους καθορισμένους τύπους παραμέτρων τους. Συσχετίζεται συνήθως με στατικές γλώσσες προγραμματισμού, οι οποίες επιβάλλουν τον έλεγχο τύπου σε κλήσεις λειτουργίας. Θεωρείται επίσης πρακτικό, καθώς επιτρέπει στον προγραμματιστή να γράψει διάφορες διαφορετικές μεθόδους στην ίδια κλάση. Ωστόσο, κατά την υπερφόρτωση του επεξεργαστή χρόνου εκτέλεσης αλλάζει το όνομα όλων των υπερφορτωμένων μεθόδων, πράγμα που μπορεί να είναι ένα πρόβλημα.
Η μέθοδος overriding, στον αντικειμενοστραφή προγραμματισμό, είναι ένα χαρακτηριστικό που επιτρέπει σε μια υποκατηγορία ή κλάση παιδιού να παρέχει μια συγκεκριμένη εφαρμογή μιας μεθόδου που παρέχεται ήδη από μία από τις υπερκείμενες ή τις μητρικές τάξεις της. Η εφαρμογή στην υποκατηγορία αντικαθιστά ή αντικαθιστά την υλοποίηση στην μητρική τάξη παρέχοντας μια μέθοδο με το ίδιο όνομα, τις ίδιες παραμέτρους ή την ίδια υπογραφή και τον ίδιο τύπο επιστροφής με τη μέθοδο της γονικής κλάσης.
Στην υπερκείμενη μέθοδο, οι λειτουργίες κωδικοποιούνται για την εκτέλεση συγκεκριμένων εργασιών σε ένα πρόγραμμα. Η υπέρβαση εξαρτάται από την παρουσία μιας συνάρτησης βασικής κλάσης για την εμφάνισή της. Εδώ, η εκτελεσθείσα συνάρτηση καθορίζεται από το αντικείμενο που χρησιμοποιείται για την κλήση της, δηλαδή εάν ένα αντικείμενο μιας γονικής κλάσης χρησιμοποιείται για να επικαλεσθεί τη μέθοδο, τότε θα εκτελεστεί η συνάρτηση στην γονική κλάση. Η απαγόρευση έχει πολυμορφική φύση. βοηθά στο σχεδιασμό προγραμμάτων με βάση την πρώτη έμμεση παράμετρο, η οποία μπορεί να επιλυθεί κατά το χρόνο εκτέλεσης. Υπάρχουν κάποιες γλώσσες στο java που επιτρέπουν σε έναν προγραμματιστή να εμποδίσει την αλλαγή μιας μεθόδου.
Σύγκριση μεταξύ υπερφόρτωσης και υπέρβασης:
Υπερφόρτωση | Υπέρβαση | |
Ορισμός | Σημαίνει ότι υπάρχουν μέθοδοι της ίδιας κλάσης με το ίδιο όνομα, αλλά κάθε μέθοδος έχει διαφορετικές παραμέτρους ή έχει ίδιες παραμέτρους με διαφορετικούς τύπους και τάξη. | Σημαίνει την ύπαρξη μιας υποκατηγορίας με τις ίδιες μεθόδους με το ίδιο όνομα και ακριβώς τον ίδιο τύπο παραμέτρων και τον ίδιο τύπο επιστροφής με μια κατηγορία super. |
Εννοια | Σημαίνει ότι περισσότερες από μία μέθοδοι μοιράζονται το ίδιο όνομα στην ίδια κλάση αλλά έχουν διαφορετική υπογραφή. | Αυτό σημαίνει ότι η μέθοδος της βασικής κλάσης επαναπροσδιορίζεται στην κλάση που παράγεται με την ίδια υπογραφή. |
η ΣΥΜΠΕΡΙΦΟΡΑ | Προσθέτει ή επεκτείνει τη συμπεριφορά των μεθόδων. | Αλλάζει την υπάρχουσα συμπεριφορά μιας μεθόδου. |
Πολυμορφισμός | Είναι ένας πολυμορφισμός χρόνου σύνταξης. | Είναι ένας πολυμορφισμός χρόνου εκτέλεσης. |
Στατική μέθοδος | Η στατική μέθοδος μπορεί να υπερφορτωθεί. | Η στατική μέθοδος δεν μπορεί να αντικατασταθεί. |
Δεσμός | Στατικός δεσμός. | Δυναμικός δεσμός. |
Κληρονομία | Μπορεί ή δεν μπορεί να απαιτήσει κληρονομικότητα. | Απαιτεί πάντα κληρονομικότητα. |
Σχέση | Συσχετίζεται συνήθως με γλώσσες στατικών προγραμμάτων. | Συνήθως συσχετίζεται με προγράμματα με αντικείμενο αντικείμενο. |
Υπογραφή | Οι μέθοδοι έχουν διαφορετική υπογραφή. | Οι μέθοδοι πρέπει να έχουν την ίδια υπογραφή. |
Ταχύτητα | Είναι ταχύτερη από την υπερισχύει. | Είναι αργή σε σύγκριση με την υπερφόρτωση. |
Μαθήματα | Δεν απαιτεί περισσότερες από μία κατηγορίες για υπερφόρτωση. | Απαιτεί τουλάχιστον δύο κατηγορίες για υπερφόρτωση. |
Επίπεδο | Οι μέθοδοι μπορούν να έχουν οποιοδήποτε επίπεδο πρόσβασης. | Οι μέθοδοι έχουν ίδιο ή ευρύ επίπεδο πρόσβασης. |
Παράδειγμα | Κλάση Προσθήκη { int σύνολο (int a, int b) { επιστροφή a + b; }} int σύνολο (int a) { επιστροφή a + 10; }} }} | Κατηγορία A // Super Class { άκυρη απεικόνιση (int num) { print num; }} }} // Η κλάση Β κληρονομεί την κατηγορία Α Κατηγορία Β // Υποκλάση { άκυρη απεικόνιση (int num) { print num; }} }} |