Διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP

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

Διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP
Διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP

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

Βίντεο: Διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP
Βίντεο: Εισαγωγή στον Αντικειμενοστραφή προγραμματισμό με την γλώσσα python 2024, Νοέμβριος
Anonim

Βασική διαφορά – Πολυμορφισμός έναντι Κληρονομικότητας στο OOP

Ο αντικειμενοστρεφής προγραμματισμός (OOP) χρησιμοποιείται συνήθως για την ανάπτυξη λογισμικού. Πολλές γλώσσες προγραμματισμού υποστηρίζουν αντικειμενοστραφή προγραμματισμό. Ο αντικειμενοστραφής προγραμματισμός είναι μια μεθοδολογία σχεδιασμού ενός προγράμματος χρησιμοποιώντας κλάσεις και αντικείμενα. Μια κλάση στο OOP είναι ένα προσχέδιο για τη δημιουργία ενός αντικειμένου. Μια κλάση έχει ιδιότητες και μεθόδους. Ένα αντικείμενο είναι ένα παράδειγμα μιας κλάσης. Το OOP περιέχει τέσσερις πυλώνες όπως η κληρονομικότητα, ο πολυμορφισμός, η αφαίρεση και η ενθυλάκωση. Αυτό το άρθρο εξετάζει τη διαφορά μεταξύ Πολυμορφισμού και Κληρονομικότητας στο OOP. Η βασική διαφορά μεταξύ του Polymorphism και της Inheritance στο OOP είναι ότι ο Polymorphism είναι η ικανότητα ενός αντικειμένου να συμπεριφέρεται με πολλούς τρόπους και το Inheritance είναι να δημιουργεί μια νέα κλάση χρησιμοποιώντας ιδιότητες και μεθόδους μιας υπάρχουσας κλάσης.

Τι είναι ο Πολυμορφισμός στο OOP;

Ο πολυμορφισμός υποδηλώνει πολλαπλές μορφές. Ένα αντικείμενο μπορεί να έχει πολλαπλές συμπεριφορές. Ο πολυμορφισμός μπορεί να χωριστεί σε δύο κατηγορίες. Υπερφορτώνουν και υπερισχύουν.

Υπερφόρτωση

Ανατρέξτε στο παρακάτω πρόγραμμα γραμμένο σε Java.

Διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP
Διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP

Εικόνα 01: Υπερφόρτωση

Σύμφωνα με το παραπάνω πρόγραμμα δημιουργείται ένα αντικείμενο τύπου Α. Όταν καλείτε το obj.sum(); θα δώσει την έξοδο που σχετίζεται με τη μέθοδο sum(). Όταν καλείτε το obj.sum(2, 3); θα δώσει την έξοδο που σχετίζεται με το άθροισμα (int a, int b). Μπορεί να παρατηρηθεί ότι το ίδιο αντικείμενο έχει διαφορετικές συμπεριφορές ανάλογα με την κατάσταση. Όταν υπάρχουν πολλές μέθοδοι με το ίδιο όνομα, αλλά με διαφορετικές παραμέτρους, είναι γνωστό ως υπερφόρτωση. Είναι επίσης γνωστό ως πολυμορφισμός στατικής σύνδεσης ή μεταγλώττισης χρόνου.

Παράκαμψη

Ένας άλλος τύπος Πολυμορφισμού υπερισχύει. Ανατρέξτε στο παρακάτω πρόγραμμα γραμμένο σε Java.

Διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP_Εικόνα 02
Διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP_Εικόνα 02

Εικόνα 02: Παράκαμψη

Σύμφωνα με το παραπάνω πρόγραμμα, υπάρχει μια μέθοδος display() στην κλάση Α. Η κλάση Β εκτείνεται από την κλάση Α. Επομένως, όλες οι μέθοδοι στην κλάση Α είναι προσβάσιμες από την κλάση Β. Είναι κληρονομική. Η έννοια της κληρονομικότητας περιγράφεται περαιτέρω αργότερα.

Η Κλάση Β έχει επίσης την ίδια μέθοδο display(). Κατά τη δημιουργία ενός αντικειμένου τύπου Α και την κλήση της μεθόδου εμφάνισης, η έξοδος θα δώσει το Β. Η μέθοδος εμφάνισης κλάσης Α παρακάμπτεται από τη μέθοδο εμφάνισης κλάσης Β. Άρα, η έξοδος είναι B.

Όταν υπάρχουν μέθοδοι με το ίδιο όνομα και τις ίδιες παραμέτρους αλλά σε δύο διαφορετικές κλάσεις, και συνδέονται με κληρονομικότητα, είναι γνωστό ως παράκαμψη. Είναι επίσης γνωστό ως Late binding, Dynamic Binding, Runtime Polymorphism. Η υπερφόρτωση και η παράκαμψη ονομάζονται Πολυμορφισμός. Είναι μια σημαντική ιδέα στον Αντικειμενοστραφή Προγραμματισμό.

Τι είναι η κληρονομικότητα στο OOP;

Ανατρέξτε στο παρακάτω πρόγραμμα γραμμένο σε Java.

Βασική διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP
Βασική διαφορά μεταξύ πολυμορφισμού και κληρονομικότητας στο OOP

Εικόνα 03: Παράδειγμα κληρονομικότητας

Σύμφωνα με το παραπάνω πρόγραμμα, η κλάση Α έχει τη μέθοδο sum() και η κλάση Β έχει τη μέθοδο sub().

Η μέθοδος sum() της κλάσης Α μπορεί να χρησιμοποιηθεί στην κλάση Β χρησιμοποιώντας τη λέξη-κλειδί επέκτασης. Η επαναχρησιμοποίηση των ιδιοτήτων και των μεθόδων σε μια υπάρχουσα κλάση για τη δημιουργία μιας νέας κλάσης είναι γνωστή ως Inheritance. Ακόμα και δεν υπάρχει μέθοδος sum() στην κλάση Β. κληρονομείται από την κλάση Α. Η κληρονομικότητα είναι χρήσιμη για την επαναχρησιμοποίηση κώδικα. Η παλαιότερη κλάση ονομάζεται κλάση βάσης, υπερκλάση ή γονική κλάση. Η παραγόμενη κλάση ονομάζεται υποκλάση ή θυγατρική κλάση.

Τύποι κληρονομιάς

Υπάρχουν διάφοροι τύποι κληρονομικότητας. Είναι η κληρονομικότητα ενός επιπέδου, η κληρονομικότητα πολλαπλών επιπέδων, η κληρονομικότητα πολλαπλών επιπέδων, η ιεραρχική κληρονομικότητα και η υβριδική κληρονομικότητα.

Μοναδική κληρονομιά

Στο Single Inheritance, υπάρχει μία super class και μία sub class. Εάν η κλάση Α είναι η υπερκλάση και η κλάση Β η υποκλάση, όλες οι ιδιότητες και οι μέθοδοι της κλάσης Α είναι προσβάσιμες από την κλάση Β. Υπάρχει μόνο ένα επίπεδο. Επομένως, ονομάζεται κληρονομικότητα ενός επιπέδου.

Κληρονομικότητα πολλαπλών επιπέδων

Στο Multi-Level Inheritance υπάρχουν τρία επίπεδα κλάσεων. Η ενδιάμεση τάξη κληρονομεί από την super class. Η υποκλάση κληρονομεί από την ενδιάμεση κλάση. Αν υπάρχουν τρεις κατηγορίες ως Α, Β και Γ και η Α είναι η υπερκλάση και η Β είναι η ενδιάμεση τάξη. Τότε το Β κληρονομεί από το Α και το Γ κληρονομεί από το Β, είναι μια κληρονομιά πολλαπλών επιπέδων.

Πολλαπλή κληρονομιά

Στην πολλαπλή κληρονομικότητα, υπάρχουν πολλές σούπερ κλάσεις και μία υποκλάση. Εάν υπάρχουν τρεις σούπερ κλάσεις που ονομάζονται A, B, C και η D είναι η υποκλάση, τότε η κλάση D μπορεί να κληρονομήσει από τις A, B και C. Η πολλαπλή κληρονομικότητα υποστηρίζεται στη γλώσσα προγραμματισμού C++. Δεν υποστηρίζεται σε γλώσσες προγραμματισμού όπως η Java ή η C. Οι διεπαφές χρησιμοποιούνται για την εφαρμογή πολλαπλής κληρονομικότητας σε αυτές τις γλώσσες.

Ιεραρχική κληρονομιά

Εάν υπάρχουν κλάσεις που ονομάζονται A ως υπερτάξεις και οι B, C είναι υποκλάσεις, αυτές οι υποκλάσεις μπορούν να κληρονομήσουν ιδιότητες και μεθόδους της κλάσης A. Αυτός ο τύπος κληρονομικότητας είναι γνωστός ως Hierarchical Inheritance.

Υβριδική κληρονομιά

Υπάρχει ένας άλλος ειδικός τύπος κληρονομικότητας που είναι γνωστός ως Hybrid Inheritance. Είναι ένας συνδυασμός πολλαπλών επιπέδων και πολλαπλών κληρονομιών. Εάν οι A, B, C και D είναι κλάσεις και το B κληρονομεί από το A και το D κληρονομείται και από το B και από το C, τότε είναι μια υβριδική κληρονομικότητα.

Ποιες είναι οι ομοιότητες μεταξύ του πολυμορφισμού και της κληρονομικότητας στο OOP;

Και οι δύο είναι έννοιες του Αντικειμενοστρεφούς Προγραμματισμού

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

Πολυμορφισμός εναντίον Κληρονομικότητας στο OOP

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

Σύνοψη – Πολυμορφισμός εναντίον Κληρονομικότητας στο OOP

Ο πολυμορφισμός και η κληρονομικότητα είναι κύριες έννοιες στον Αντικειμενοστραφή Προγραμματισμό. Η διαφορά μεταξύ του Polymorphism και της Inheritance στο OOP είναι ότι ο Polymorphism είναι μια κοινή διεπαφή σε πολλαπλές μορφές και η Inheritance είναι η δημιουργία μιας νέας κλάσης χρησιμοποιώντας ιδιότητες και μεθόδους μιας υπάρχουσας κλάσης. Και οι δύο έννοιες χρησιμοποιούνται ευρέως στην ανάπτυξη λογισμικού.

Λήψη του PDF Polymorphism vs Inheritance στο OOP

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

Συνιστάται: