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

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

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

Βίντεο: Διαφορά μεταξύ αφηρημένης και συγκεκριμένης τάξης
Βίντεο: Public vs Private IP Address 2024, Ιούλιος
Anonim

Τάξη αφηρημένης vs Τάξη σκυροδέματος

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

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

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

Τι είναι Abstract Class;

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

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

Ποια είναι η διαφορά μεταξύ Abstract Class και Concrete Class;

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

Συνιστάται: