Διαφορά μεταξύ παράκαμψης και υπερφόρτωσης στο C

Πίνακας περιεχομένων:

Διαφορά μεταξύ παράκαμψης και υπερφόρτωσης στο C
Διαφορά μεταξύ παράκαμψης και υπερφόρτωσης στο C

Βίντεο: Διαφορά μεταξύ παράκαμψης και υπερφόρτωσης στο C

Βίντεο: Διαφορά μεταξύ παράκαμψης και υπερφόρτωσης στο C
Βίντεο: From C to Python by Ross Rheingans-Yoo 2024, Δεκέμβριος
Anonim

Βασική διαφορά – Παράκαμψη έναντι υπερφόρτωσης στο C

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

Η C είναι μια γλώσσα προγραμματισμού γενικής χρήσης που αναπτύχθηκε από τη Microsoft. Το κύριο πλεονέκτημα της C είναι ότι υποστηρίζει Αντικειμενοστραφή Προγραμματισμό (OOP). Ένας πυλώνας του OOP είναι ο Πολυμορφισμός. Δίνει σε ένα αντικείμενο πολλαπλές συμπεριφορές. Υπάρχουν δύο τύποι στον Πολυμορφισμό γνωστοί ως υπέρβαση και υπερφόρτωση. Αυτό το άρθρο εξετάζει τη διαφορά μεταξύ παράκαμψης μεθόδου και υπερφόρτωσης σε C.

Τι είναι το Overriding στο C;

Υπάρχει μία άλλη σημαντική έννοια στο OOP είναι η κληρονομικότητα. Είναι να χρησιμοποιήσει χαρακτηριστικά και μεθόδους της ήδη υπάρχουσας κλάσης. Βελτιώνει την επαναχρησιμοποίηση κώδικα. Η ήδη υπάρχουσα κλάση είναι η βασική κλάση και η νέα κλάση είναι γνωστή ως παράγωγη κλάση. Στην παράκαμψη του πολυμορφισμού, θα πρέπει να υπάρχει μια βασική κατηγορία και μια παραγόμενη κλάση. Η σύνδεση της κλήσης της παρακαμφθείσας μεθόδου στον ορισμό συμβαίνει κατά το χρόνο εκτέλεσης. Ένα παράδειγμα είναι το εξής.

Διαφορά μεταξύ παράκαμψης και υπερφόρτωσης στο C
Διαφορά μεταξύ παράκαμψης και υπερφόρτωσης στο C

Εικόνα 01: Πρόγραμμα C με παράκαμψη

Σύμφωνα με το παραπάνω πρόγραμμα, η κλάση Shape είναι η βασική κλάση και περιέχει τη μέθοδο εμφάνισης. Οι κλάσεις Rectangle και Triangle είναι παράγωγες κλάσεις. Αυτές οι παραγόμενες κλάσεις έχουν επίσης την ίδια μέθοδο εμφάνισης με τις δικές τους υλοποιήσεις.

Πρώτον, δημιουργείται η μεταβλητή αναφοράς obj. Δείχνει στο αντικείμενο Shape. Έτσι, θα εκτελεστεί η μέθοδος εμφάνισης της κλάσης Shape. Στη συνέχεια, η μεταβλητή αναφοράς δείχνει στο αντικείμενο Rectangle. Έτσι, θα εκτελεστεί η μέθοδος εμφάνισης της κλάσης Rectangle. Τέλος, η μεταβλητή αναφοράς δείχνει το αντικείμενο Triangle. Έτσι, θα εκτελεστεί η μέθοδος εμφάνισης της κλάσης Triangle. Η μέθοδος εμφάνισης της βασικής κλάσης αντικαθίσταται από τις μεθόδους εμφάνισης των παραγόμενων κλάσεων.

Η μέθοδος εκτέλεσης αποφασίζεται κατά το χρόνο εκτέλεσης. Η κλάση Shape γράφεται με «εικονική» λέξη-κλειδί. Οι κλάσεις Rectangle και Triangle γράφονται με λέξη-κλειδί «παράκαμψη». Εάν αυτές οι λέξεις-κλειδιά δεν χρησιμοποιούνται, η έξοδος θα εκτυπώσει το περιεχόμενο της μεθόδου εμφάνισης της κλάσης Shape για όλους.

Τι είναι η υπερφόρτωση στο C;

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

Βασική διαφορά μεταξύ παράκαμψης και υπερφόρτωσης στο C
Βασική διαφορά μεταξύ παράκαμψης και υπερφόρτωσης στο C

Εικόνα 02: Πρόγραμμα C με υπερφόρτωση

Σύμφωνα με το παραπάνω πρόγραμμα, η κλάση Α έχει δύο μεθόδους με το ίδιο όνομα που ονομάζονται άθροισμα. Έχουν διαφορετικούς τύπους παραμέτρων. Στο κύριο πρόγραμμα δημιουργείται ένα αντικείμενο του Α. Το άθροισμα (2, 3) θα καλέσει τη μέθοδο αθροίσματος με ακέραιους αριθμούς. Το άθροισμα (5.1, 7.94) θα ενεργοποιήσει τη μέθοδο αθροίσματος με διπλές τιμές. Και οι δύο μέθοδοι έχουν το ίδιο όνομα και τον ίδιο αριθμό παραμέτρων. Αλλά οι τύποι παραμέτρων είναι διαφορετικοί. Η απαιτούμενη μέθοδος καλείται ανάλογα. Υπερφόρτωση μπορεί επίσης να προκύψει εάν τα ονόματα μεθόδων και οι τύποι παραμέτρων είναι ίδια αλλά ο αριθμός των παραμέτρων είναι διαφορετικός.

Ποια είναι η ομοιότητα μεταξύ παράκαμψης και υπερφόρτωσης στο C;

Τόσο η παράκαμψη όσο και η υπερφόρτωση στη C είναι τύποι πολυμορφισμού

Ποια είναι η διαφορά μεταξύ της παράκαμψης και της υπερφόρτωσης στο C;

Παράκαμψη έναντι υπερφόρτωσης στο C

Η παράκαμψη στη C είναι η παροχή μιας συγκεκριμένης υλοποίησης σε μια μέθοδο παράγωγης κλάσης για μια μέθοδο που υπάρχει ήδη στη βασική κλάση. Η υπερφόρτωση στο C είναι η δημιουργία πολλαπλών μεθόδων με το ίδιο όνομα με διαφορετικές υλοποιήσεις.
Παράμετροι
Στο C Overriding, οι μέθοδοι έχουν το ίδιο όνομα, τους ίδιους τύπους παραμέτρων και τον ίδιο αριθμό παραμέτρων. Στο C Overloading, οι μέθοδοι έχουν το ίδιο όνομα αλλά διαφορετικό αριθμό παραμέτρων ή διαφορετικό τύπο παραμέτρων.
Συμβάντο
Στην C, η παράκαμψη πραγματοποιείται εντός της βασικής κλάσης και της παραγόμενης κλάσης. Σε C, η υπερφόρτωση συμβαίνει στην ίδια τάξη.
Χρόνος δέσμευσης
Η δέσμευση της κλήσης παρακαμφθείσας μεθόδου στον ορισμό της συμβαίνει κατά το χρόνο εκτέλεσης. Η δέσμευση της κλήσης υπερφορτωμένης μεθόδου στον ορισμό της γίνεται κατά τη στιγμή της μεταγλώττισης.
Συνώνυμα
Η παράκαμψη ονομάζεται πολυμορφισμός χρόνου εκτέλεσης, δυναμικός πολυμορφισμός ή καθυστερημένη δέσμευση. Η υπερφόρτωση ονομάζεται πολυμορφισμός χρόνου μεταγλώττισης, στατικός πολυμορφισμός ή πρώιμη δέσμευση.

Σύνοψη – Παράκαμψη έναντι υπερφόρτωσης στο C

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

Συνιστάται: