Διαφορά μεταξύ εφαρμογών και επεκτάσεων

Διαφορά μεταξύ εφαρμογών και επεκτάσεων
Διαφορά μεταξύ εφαρμογών και επεκτάσεων

Βίντεο: Διαφορά μεταξύ εφαρμογών και επεκτάσεων

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

Implements vs Extends

Εφαρμογές και Επεκτάσεις είναι δύο λέξεις-κλειδιά που βρίσκονται στη γλώσσα προγραμματισμού Java και παρέχουν ένα μέσο μεταφοράς πρόσθετων λειτουργιών σε μια νέα κλάση. Η λέξη-κλειδί Implements χρησιμοποιείται ρητά για την υλοποίηση μιας διεπαφής, ενώ η λέξη-κλειδί Extends χρησιμοποιείται για κληρονομιά από μια (super) κλάση. Λάβετε υπόψη ότι οι έννοιες της κληρονομικότητας και των διεπαφών υπάρχουν στις περισσότερες από τις άλλες αντικειμενοστρεφείς γλώσσες προγραμματισμού, όπως η C και η VB. NET, αλλά προσφέρουν διαφορετική σύνταξη ή λέξεις-κλειδιά για την εφαρμογή αυτών των εννοιών. Αυτό το άρθρο εστιάζει μόνο σε Υλοποιεί και επεκτείνει λέξεις-κλειδιά που ορίζονται στην Java.

Extends

Η λέξη-κλειδί Εκτάσεις χρησιμοποιείται για την υλοποίηση της έννοιας της κληρονομικότητας στη γλώσσα προγραμματισμού Java. Η κληρονομικότητα ουσιαστικά παρέχει επαναχρησιμοποίηση κώδικα επιτρέποντας την επέκταση των ιδιοτήτων και της συμπεριφοράς μιας υπάρχουσας κλάσης από μια κλάση που ορίστηκε πρόσφατα. Όταν μια νέα υποκλάση (ή παράγωγη κλάση) επεκτείνει μια υπερκλάση (ή γονική κλάση), αυτή η υποκλάση θα κληρονομήσει όλα τα χαρακτηριστικά και τις μεθόδους της υπερκλάσης. Η υποκλάση μπορεί προαιρετικά να παρακάμψει τη συμπεριφορά (παροχή νέας ή εκτεταμένης λειτουργικότητας σε μεθόδους) που κληρονομήθηκε από τη γονική κλάση. Μια υποκλάση δεν μπορεί να επεκτείνει πολλαπλές υπερτάξεις στην Java. Επομένως, δεν μπορείτε να χρησιμοποιήσετε επεκτάσεις για πολλαπλή κληρονομιά. Για να έχετε πολλαπλή κληρονομικότητα, πρέπει να χρησιμοποιήσετε διεπαφές όπως εξηγείται παρακάτω.

Εφαρμογές

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

Διαφορά μεταξύ υλοποιήσεων και επεκτάσεων

Αν και τα Implements και Extends είναι δύο λέξεις-κλειδιά που παρέχουν έναν μηχανισμό κληρονομιάς ιδιοτήτων και συμπεριφοράς σε μια τάξη στη γλώσσα προγραμματισμού Java, χρησιμοποιούνται για δύο διαφορετικούς σκοπούς. Η λέξη-κλειδί Implements χρησιμοποιείται για μια κλάση για την υλοποίηση μιας συγκεκριμένης διεπαφής, ενώ η λέξη-κλειδί Extends χρησιμοποιείται για μια υποκλάση που επεκτείνεται από μια υπερκλάση. Όταν μια κλάση υλοποιεί μια διεπαφή, αυτή η κλάση πρέπει να εφαρμόσει όλες τις μεθόδους που ορίζονται στη διεπαφή, αλλά όταν μια υποκλάση επεκτείνει μια υπερκλάση, μπορεί ή όχι να παρακάμψει τις μεθόδους που περιλαμβάνονται στη γονική κλάση. Τέλος, μια άλλη βασική διαφορά μεταξύ Implements και Extends είναι ότι μια κλάση μπορεί να υλοποιήσει πολλαπλές διεπαφές, αλλά μπορεί να επεκταθεί μόνο από μια super class στην Java. Γενικά, η χρήση των Implements (διεπαφές) θεωρείται πιο ευνοϊκή σε σύγκριση με τη χρήση των Extends (κληρονομικότητα), για διάφορους λόγους όπως η μεγαλύτερη ευελιξία και η δυνατότητα ελαχιστοποίησης της σύζευξης. Επομένως, στην πράξη, ο προγραμματισμός σε μια διεπαφή προτιμάται από την επέκταση από τις βασικές κλάσεις.

Συνιστάται: