Διαφορές μεταξύ αφηρημένης κλάσης και διεπαφής στην Java

Abstract Class vs Interface στην Ιάβα



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

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




Διαφορές



Πρώτα απ 'όλα, μια αφηρημένη κλάση επιτρέπει πεδία που δεν είναι στατικά ή τελικά σε αντίθεση με τα στατικά και τελικά πεδία που χρησιμοποιούνται σε διεπαφές. Οι διεπαφές δεν μπορούν να έχουν καμία εφαρμογή κώδικας χρησιμοποιείται σε αυτά, και μπορεί να υπάρχει κώδικας εφαρμογής που χρησιμοποιείται στην αφηρημένη τάξη. Οι κωδικοί υλοποίησης που διατίθενται στην αφηρημένη κλάση μπορούν να έχουν μερικές ή όλες τις εφαρμοζόμενες μεθόδους. Από προεπιλογή, όλες οι μέθοδοι της διεπαφής είναι «αφηρημένες».

Η ορατότητα είναι επίσης δυνατή για μεθόδους ή μέλη μιας αφηρημένης τάξης που μπορεί να ποικίλλει όπως δημόσια, προστατευμένη, ιδιωτική ή καμία. Η ορατότητα της διεπαφής, από την άλλη πλευρά, μπορεί να προκαθοριστεί μόνο σε έναν τρόπο ορατότητας που είναι 'δημόσιος'. '

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



Η διεπαφή στην Java έχει επίσης μια πολύ σημαντική λειτουργία με την εφαρμογή πολλαπλών κληρονομιών, καθώς μια τάξη μπορεί να έχει μόνο μία σούπερ τάξη. Παρόλο που μπορεί να υπάρχει μόνο μία σούπερ τάξη, μπορεί να εφαρμοστεί σε οποιονδήποτε αριθμό διεπαφών. Δεν είναι δυνατόν να έχουμε πολλαπλές κληρονομίες σε μια αφηρημένη τάξη.

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

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



Περίληψη

  1. Τα αφηρημένα πεδία τάξης δεν είναι στατικά ή τελικά, σε αντίθεση με τη διεπαφή που έχει στατικούς και τελικούς πίνακες.

  2. Κανένας κωδικός εφαρμογής δεν μπορεί να χρησιμοποιηθεί σε διεπαφές ενώ μπορεί να χρησιμοποιηθεί σε αφηρημένη κλάση.

  3. Η ορατότητα διεπαφής μπορεί να είναι δημόσια μόνο, ενώ η αφηρημένη ορατότητα κλάσης μπορεί να διαφέρει.

  4. Μια αφηρημένη κλάση θα κληρονομήσει αυτόματα την κλάση αντικειμένων, αλλά δεν είναι δυνατή στη διεπαφή.

  5. Η αφηρημένη κλάση είναι ταχύτερη από τη διεπαφή κατά την εφαρμογή.

Δημοφιλείς Αναρτήσεις

5 Κοντά νυφικά φορέματα που δεν θα κάνουν τους φίλους σας να σας μισούν κρυφά

Χθες επεσήμανα ότι τα μακριά φορέματα παράνυμφων μοιάζουν συχνά με κουρτίνες, κάτι που δεν είναι τόσο χαριτωμένο. Νομίζω όμως ότι όλοι γνωρίζουμε ότι τα κοντά φορέματα για παράνυμφοι έχουν τη δυνατότητα να είναι το ίδιο φουνταριστά. (Σε κοιτάζω, λαμπερά στράπλες, σατέν φορέματα με λουκάνικο.) Το κλειδί για την επιλογή ενός κοντού νυφικού φόρεμα που οι φίλοι σου δεν θα μισούν κρυφά είναι να βρεις μια σιλουέτα που θα βολεύει ο καθένας. Ανάλογα με το σχήμα των φίλων σου και επίπεδα άνεσης, αυτό μπορεί να σημαίνει, ας πούμε, να επιλέξουμε ένα φόρεμα με λουράκια ή ένα που δεν είναι άνετο στους γοφούς. Ακολουθούν πέντε υποψήφιοι: Bridesmaid Dress 1: Jenny Yoo Bridesmaid Dress 2: Monique Lhuillier Bridesmaids Ναι, το παρακάτω φόρεμα αποκαλύπτει πολλά, τόσο από πάνω όσο και από κάτω. Αλλά μας διαβεβαίωσαν στην παράσταση ότι το φόρεμα θα ήταν ΤΡΟΠΟΣ πιο συντηρητικό όταν βγαίνει στα καταστήματα, οπότε προσπαθήστε να οραματιστείτε μια λιγότερο αυθόρμητη εκδοχή! Bridesmaid Dress 3: Noir by Lazaro Bridesmaid Dress 4: Watters Bridesmaid Dress 5: Wtoo Σας αρέσει να φοράτε κοντά νυφικά φορέματα; Ποιο από αυτά τα φορέματα είναι το αγαπημένο σας; Θα έπρεπε να δω τη «συντηρητική» έκδοση του Νο 3 πριν την αγοράσω, αλλά μου αρέσει τόσο το χρώμα όσο και το μοτίβο στη φούστα!

6 World-Changers στο μονόδρομο που ωθούν το γυναικείο κίνημα μπροστά

Γυναίκες με επιρροή από την Τσέλσι Κλίντον έως τις Πατρίς Κάλλορ του Black Lives Matter's ζυγίζουν εκεί που πρέπει να πάει το κίνημα για τα δικαιώματα των γυναικών το 2018.

Διαφορά μεταξύ Blackberry Torch 2 και Blackberry Torch 9800

Blackberry Torch 2 vs Blackberry Torch 9800 Το Blackberry Torch 2 είναι η υποτιθέμενη αντικατάσταση του Torch 9800. Η κύρια διαφορά μεταξύ των δύο είναι η

The Leading Edge: Αμερικανοί στο El Alamein

Πέντε νέοι ιδεαλιστές έγιναν οι πρώτοι Yanks που συμμετείχαν στον αγώνα ενάντια στη Γερμανία στο πεδίο της μάχης

Ο Βρετανός Marksman που αρνήθηκε να πυροβολήσει τον George Washington

Η ζωή του Τζωρτζ Ουάσινγκτον μπορεί να είχε αποφευχθεί στη μάχη του Μπράντυ με έναν Βρετανό σκοπευτή που έδωσε τιμή μπροστά στη δόξα.

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

Τόσο οι σύνδεσμοι όσο και οι υπερσύνδεσμοι αποτελούν αναπόσπαστο μέρος του Παγκόσμιου Ιστού που σας κάνει να μεταβείτε από τη μια τοποθεσία στην άλλη εντός ιστοσελίδων ή ακόμη και ιστότοπων μέσω