Διαφορά μεταξύ κατηγορίας αφηρημένης κλάσης και σκυροδέματος

Anonim

Class Abstract vs. Class Concrete

Οι περισσότερες δημοφιλείς σύγχρονες αντικειμενοστραφείς γλώσσες προγραμματισμού, όπως η Java και η C #, βασίζονται στην τάξη. Επιτυγχάνουν τις αντικειμενοστραφείς έννοιες όπως η ενθυλάκωση, η κληρονομιά και ο πολυμορφισμός μέσω της χρήσης των τάξεων. Οι τάξεις είναι μια αφηρημένη αναπαράσταση αντικειμένων πραγματικού κόσμου. Οι τάξεις μπορούν να είναι είτε συγκεκριμένες είτε αφηρημένες ανάλογα με το επίπεδο υλοποίησης των λειτουργιών των μεθόδων τους. Μια κατηγορία σκυροδέματος εφαρμόζει πλήρως όλες τις μεθόδους της. Μια αφηρημένη κλάση μπορεί να θεωρηθεί ως μια περιορισμένη έκδοση μιας κανονικής (συγκεκριμένης) τάξης, όπου μπορεί να περιέχει μερικώς εφαρμοζόμενες μεθόδους. Τυπικά, οι κατηγορίες σκυροδέματος αναφέρονται ως (μόνο) τάξεις.

Τι είναι η κατηγορία σκυροδέματος;

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

Τι είναι η Abstract Class;

Τα αφηρημένα μαθήματα δηλώνονται χρησιμοποιώντας την λέξη Αφηρημένη λέξη-κλειδί (π.χ., Java,). Συνήθως, τα αφηρημένα μαθήματα, γνωστά και ως Abstract Basic Classes (ABC), δεν μπορούν να παρουσιαστούν (δεν είναι δυνατή η δημιουργία μιας παρουσίας αυτής της κλάσης). Έτσι, οι κλάσεις Abstract έχουν νόημα μόνο αν η γλώσσα προγραμματισμού υποστηρίζει την κληρονομικότητα (δυνατότητα δημιουργίας υποκατηγοριών από την επέκταση μιας κλάσης). Τα αφηρημένα μαθήματα αντιπροσωπεύουν συνήθως μια αφηρημένη έννοια ή οντότητα με μερική ή μη εφαρμογή. Επομένως, οι κλάσεις αφηρημένων λειτουργούν ως κλάσεις γονέων από τις οποίες προέρχονται κλάσεις παιδιών, έτσι ώστε η τάξη των παιδιών να μοιράζεται τα ελλιπή χαρακτηριστικά της γονικής τάξης και να μπορούν να προστεθούν λειτουργικότητες για την ολοκλήρωσή τους.

Τα αφηρημένα μαθήματα μπορεί να περιέχουν αφηρημένες μεθόδους. Υποκατηγορίες που επεκτείνουν μια αφηρημένη κλάση μπορούν να εφαρμόσουν αυτές τις (κληρονομικές) αφηρημένες μεθόδους.Εάν η τάξη των παιδιών εφαρμόζει όλες αυτές τις Αφηρημένες μεθόδους, γίνεται μια συγκεκριμένη τάξη. Αλλά αν όχι, η τάξη των παιδιών γίνεται επίσης μια κατηγορία Abstract. Αυτό σημαίνει ότι όταν ο προγραμματιστής ορίζει μια τάξη ως Περίληψη, λέει ότι η τάξη θα είναι ατελής και θα έχει στοιχεία που πρέπει να συμπληρωθούν από τις κληρονομικές υποκλάσεις. Αυτός είναι ένας καλός τρόπος για να δημιουργηθεί μια σύμβαση μεταξύ δύο προγραμματιστών, η οποία απλοποιεί τα καθήκοντα στην ανάπτυξη λογισμικού. Ο προγραμματιστής, ο οποίος γράφει κώδικα για να κληρονομήσει, πρέπει να ακολουθήσει ακριβώς τους ορισμούς των μεθόδων (αλλά φυσικά μπορεί να έχει και τη δική του εφαρμογή).

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

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