Συνιστάται, 2024

Επιλογή Συντάκτη

Διαφορά μεταξύ υπερφόρτωσης μεθόδου και υπέρβασης

Μέθοδος Υπερφόρτωση
Η υπερφόρτωση μεθόδου, γνωστή και ως υπερφόρτωση λειτουργίας ή πολυμορφισμός χρόνου σύνταξης, είναι μια έννοια της ύπαρξης δύο ή περισσοτέρων μεθόδων με το ίδιο όνομα αλλά διαφορετικής υπογραφής στο ίδιο πεδίο. Υπάρχουν πολλές γλώσσες προγραμματισμού που υποστηρίζουν αυτή τη λειτουργία: Ada, C ++, C #, D και Java.

Παράδειγμα υπερφόρτωσης μεθόδου σε C #

τάξη υπερπλήρωσης κλάσης {float Πολύγωνο (int ακτίνα, float pi) {float circleArea = pi * ακτίνα * ακτίνα; } int Πολύγωνο (int μήκος, int εύρος) {int rectangleArea = μήκος * πλάτος; } int Πολύγωνο (πλευρά int) {int squareArea = πλευρά * πλευρά; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14τάξη υπερπλήρωσης κλάσης {float Πολύγωνο (int ακτίνα, float pi) {float circleArea = pi * ακτίνα * ακτίνα; } int Πολύγωνο (int μήκος, int εύρος) {int rectangleArea = μήκος * πλάτος; } int Πολύγωνο (πλευρά int) {int squareArea = πλευρά * πλευρά; }}

Όπως φαίνεται στο παραπάνω παράδειγμα, η μέθοδος 'Polygon' είναι υπερφορτωμένη 3 φορές με διαφορετική υπογραφή μεθόδου, δηλαδή ο τύπος ή ο αριθμός των παραμέτρων είναι διαφορετικοί.

Μέθοδος Υπέρβαση
Η μέθοδος overriding, επίσης γνωστή ως Overriding Function ή Polymorphism run time, είναι μια δυνατότητα OOP που επιτρέπει σε μια κλάση παιδιού να παρέχει τη δική της εφαρμογή στη μέθοδο που ορίζεται στη γονική κλάση. Η υλοποίηση στην κλάση παιδιού υπερισχύει του ορισμού της μεθόδου στην βασική κλάση, υπό την προϋπόθεση ότι η μέθοδος στην κατηγορία παιδιού θα πρέπει να έχει το ίδιο όνομα, υπογραφή και τύπο επιστροφής.

Παράδειγμα υπέρβασης μεθόδου σε C #

class Source1 {public void draw () {Console.Writeline ("Είμαι στην τάξη Source1")? }} Το class Source2 επεκτείνει το Source1 {public void draw () {Console.Writeline ("Είμαι στην τάξη Source2"). }}
1 2 3 4 5 6 7 8 9 10class Source1 {δημόσιο κενό κλήρωση () {Console. Writeline ("Είμαι στην τάξη Source1")? }} Η τάξη Source2 επεκτείνει το Source1 {public void draw () {Console. Writeline ("Είμαι στην τάξη Source2")? }}

Εδώ, η μέθοδος draw στην κλάση Source2 υπερισχύει της μεθόδου draw που ορίζεται στην κλάση Source1.

Διαφορά μεταξύ υπερφόρτωσης μεθόδου και υπέρβασης μεθόδου

  1. Στη μέθοδο υπερφόρτωσης μεθόδου πρέπει να έχει διαφορετική υπογραφή. Στη μέθοδο, οι επικαλυπτικές μέθοδοι πρέπει να έχουν την ίδια υπογραφή.
  2. Η λειτουργία "Overloading" είναι η "προσθήκη" ή "επέκταση" περισσότερο στη συμπεριφορά της μεθόδου. Η συμπλήρωση της συνάρτησης είναι να "αλλάξει" πλήρως ή να "επαναπροσδιορίσει" τη συμπεριφορά μιας μεθόδου.
  3. Η υπερφόρτωση μεθόδου χρησιμοποιείται για να επιτύχει τον πολυμορφισμό χρόνου σύνταξης. η μέθοδος overriding χρησιμοποιείται για την επίτευξη πολυμορφισμού χρόνου εκτέλεσης.
  4. Στη μεταφόρτωση μεθόδων / λειτουργιών ο μεταγλωττιστής γνωρίζει ποιο αντικείμενο έχει εκχωρηθεί σε ποια κλάση κατά το χρόνο της σύνταξης, αλλά στην παράκαμψη της μεθόδου δεν είναι γνωστή μέχρι το χρόνο εκτέλεσης.
  5. Η λειτουργία Overloading πραγματοποιείται στην ίδια κλάση, ενώ η Overriding πραγματοποιείται σε μια τάξη που προέρχεται από μια κατηγορία βάσης.
Top