Βασική διαφορά – Superclass vs Subclass
Στον Αντικειμενοστραφή Προγραμματισμό (OOP), το σύστημα μοντελοποιείται χρησιμοποιώντας αντικείμενα. Αυτά τα αντικείμενα δημιουργούνται χρησιμοποιώντας μια κλάση. Μια κλάση είναι ένα προσχέδιο ή μια περιγραφή για τη δημιουργία ενός αντικειμένου. Η δημιουργία αντικειμένων είναι επίσης γνωστή ως δημιουργία αντικειμένου. Κάθε αντικείμενο επικοινωνεί με άλλα αντικείμενα. Ένα πρόγραμμα ή λογισμικό μπορεί να αναπτυχθεί χρησιμοποιώντας Αντικειμενοστραφή Προγραμματισμό. Η κληρονομικότητα είναι μια σημαντική έννοια στο OOP. Βελτιώνει την επαναχρησιμοποίηση κώδικα. Αντί να εφαρμόσει ένα πρόγραμμα από την αρχή, επιτρέπει την κληρονομικότητα ιδιοτήτων και μεθόδων της ήδη υπάρχουσας κλάσης σε μια νέα κλάση. Βοηθά στο να γίνει το πρόγραμμα πιο διαχειρίσιμο. Η Superclass και η Subclass είναι δύο όροι που σχετίζονται με την κληρονομικότητα. Αυτό το άρθρο εξετάζει τη διαφορά μεταξύ Superclass και Subclass. Η βασική διαφορά μεταξύ της Superclass και της Subclass είναι ότι η Superclass είναι η υπάρχουσα κλάση από την οποία προέρχονται οι νέες κλάσεις, ενώ η Subclass είναι η νέα κλάση που κληρονομεί τις ιδιότητες και τις μεθόδους της Superclass.
Τι είναι το Superclass;
Στο Inheritance, η υπάρχουσα κλάση από την οποία προέρχονται οι νέες κλάσεις είναι γνωστή ως Superclass. Είναι επίσης γνωστή ως γονική κλάση ή βασική κλάση.
Υπάρχουν διαφορετικοί τύποι κληρονομικότητας. Παρουσιάζονται με τα ακόλουθα παραδείγματα. Θεωρήστε τα Α Β και Γ ως κλάσεις.
Εικόνα 01: Τύποι κληρονομικότητας
Εικόνα 02: Υβριδική κληρονομικότητα
Σύμφωνα με τα παραπάνω διαγράμματα, οι Superclasses διαφέρουν από κάθε τύπο κληρονομικότητας. Στην κληρονομικότητα ενός επιπέδου, το Α είναι η Superclass. Στην κληρονομικότητα πολλαπλών επιπέδων, η Α είναι η Υπερκλάση για το Β και η Β είναι η Υπερκλάση για το Γ. Στην Ιεραρχική Κληρονομικότητα Α είναι η Υπερκλάση και για το Β και για Γ. Σε πολλαπλές κληρονομιές τόσο το Α όσο και το Β είναι Υπερκλάσεις για το Γ.
Η υβριδική κληρονομικότητα είναι ένας συνδυασμός πολυεπίπεδων και πολλαπλών κληρονομιών. Στο διάγραμμα της αριστερής πλευράς, το Α είναι η Υπερκλάση για το Β, το Γ και το Β, το Γ είναι οι Υπερτάξεις για το Δ. Στο διάγραμμα της δεξιάς πλευράς, το Α είναι η Υπερκλάση για το Β και το Β, το Δ είναι Υπερτάξεις για το Γ.
Ανατρέξτε στο παρακάτω πρόγραμμα γραμμένο σε Java.
Εικόνα 03: Πρόγραμμα κληρονομικότητας στην Java
Σύμφωνα με το παραπάνω πρόγραμμα, η κλάση Α έχει μεθόδους sum() και sub(). Η κλάση Β έχει τη μέθοδο multiply(). Η κλάση Β επεκτείνει την κλάση Α. Επομένως, οι ιδιότητες και οι μέθοδοι της κλάσης Α είναι προσβάσιμες από την κλάση Β. Επομένως, η κλάση Α είναι η Υπερκλάση. Ο τύπος αναφοράς της κλάσης Β λαμβάνεται για τη δημιουργία του αντικειμένου. Έτσι, όλες οι μέθοδοι όπως sum(), sub() και multiply() είναι προσβάσιμες από το αντικείμενο. Εάν χρησιμοποιείται τύπος αναφοράς Superclass για τη δημιουργία αντικειμένων, τα μέλη της κλάσης Β δεν είναι προσβάσιμα. π.χ. A obj=νέο B(); Επομένως, η αναφορά Superclass δεν μπορεί να καλέσει τη μέθοδο multiply() επειδή αυτή η μέθοδος ανήκει στην κλάση B.
Τι είναι η Υποκατηγορία;
Σύμφωνα με τα παραπάνω διαγράμματα, οι υποκατηγορίες διαφέρουν από κάθε τύπο κληρονομικότητας. Στο Single Inheritance, το B είναι η υποκατηγορία. Στην κληρονομικότητα πολλαπλών επιπέδων, το Β είναι η υποκατηγορία του Α και το C είναι η υποκατηγορία του Β. Στην Ιεραρχική Κληρονομικότητα Β και Γ είναι Υποκατηγορίες του Α. Σε πολλαπλές κληρονομιές, το C είναι η Υποκλάση για το Α και το Β.
Στην υβριδική κληρονομικότητα, το διάγραμμα στα αριστερά, το B και το C είναι υποκατηγορίες του A. D είναι η υποκατηγορία των B και C. Στο διάγραμμα στα δεξιά, το B είναι η υποκατηγορία για το A. C είναι η υποκατηγορία του Β και του Δ.
Σύμφωνα με το παραπάνω πρόγραμμα κληρονομικότητας, η κλάση Β επεκτείνει την κλάση Α. Επομένως, όλες οι ιδιότητες και μέθοδοι της κλάσης Α είναι προσβάσιμες από την κλάση Β. Η κλάση Β είναι η νέα κλάση που κληρονομεί από την κλάση Α. Είναι γνωστή ως την Υποκατηγορία. Είναι επίσης γνωστή ως τάξη παιδιού ή παράγωγη τάξη. Η κλάση Β έχει τη μέθοδο πολλαπλασιασμού () και μπορεί επίσης να έχει πρόσβαση στις μεθόδους sum() και sub() της κλάσης Α χρησιμοποιώντας κληρονομικότητα.
Ποια είναι η ομοιότητα μεταξύ Superclass και Subclass;
Και τα δύο σχετίζονται με την κληρονομικότητα
Ποια είναι η διαφορά μεταξύ Superclass και Subclass;
Superclass vs Subclass |
|
Κατά την υλοποίηση της κληρονομικότητας, η υπάρχουσα κλάση από την οποία προέρχονται οι νέες κλάσεις είναι η Superclass. | Κατά την υλοποίηση της κληρονομικότητας, η κλάση που κληρονομεί τις ιδιότητες και τις μεθόδους από την Superclass είναι η Subclass. |
Συνώνυμα | |
Η υπερκλάση είναι γνωστή ως βασική τάξη, γονική τάξη. | Η υποκατηγορία είναι γνωστή ως παράγωγη τάξη, θυγατρική τάξη. |
Λειτουργικότητα | |
Μια υπερκλάση δεν μπορεί να χρησιμοποιήσει τις ιδιότητες και τις μεθόδους της υποκλάσης. | Μια υποκλάση μπορεί να χρησιμοποιήσει τις ιδιότητες και τις μεθόδους της Superclass. |
Κληρονομικότητα ενός επιπέδου | |
Υπάρχει μία Superclass. | Υπάρχει μία υποκατηγορία. |
Ιεραρχική κληρονομιά | |
Υπάρχει μία Superclass | Υπάρχουν πολλές υποκατηγορίες. |
Πολλαπλή κληρονομιά | |
Υπάρχουν πολλές Υπερτάξεις. | Υπάρχει μία υποκατηγορία. |
Σύνοψη – Superclass vs Subclass
Η κληρονομικότητα είναι μια έννοια του OOP. Επιτρέπει τη χρήση ιδιοτήτων και μεθόδων μιας υπάρχουσας κλάσης για πρόσβαση από μια νέα κλάση. Η κλάση που κληρονομείται είναι η Superclass και η παραγόμενη κλάση είναι η Subclass. Η διαφορά μεταξύ της Superclass και της Subclass είναι ότι η Superclass είναι η υπάρχουσα κλάση από την οποία προέρχονται νέες κλάσεις ενώ η Subclass είναι η νέα κλάση που κληρονομεί τις ιδιότητες και τις μεθόδους της Superclass.
Λήψη του PDF Superclass vs Subclass
Μπορείτε να κατεβάσετε την έκδοση PDF αυτού του άρθρου και να τη χρησιμοποιήσετε για σκοπούς εκτός σύνδεσης σύμφωνα με τη σημείωση παραπομπής. Κάντε λήψη της έκδοσης PDF εδώ Διαφορά μεταξύ Superclass και Subclass