Ε: Δεδομένου ότι:
ιδιωτικός
Οι μέθοδοι δεν μπορούν να παρακαμφθούν από υποκατηγορίεςτελικός
Οι μέθοδοι δεν μπορούν να παρακαμφθούν από υποκατηγορίεςτελικός
Οι μέθοδοι επιτρέπουν ταχύτερο κώδικα όταν μεταγλωττίζονται με βελτιστοποιήσεις(javac -O)
Οι ερωτήσεις μου είναι: ΕΝΑ: Όπως επισημαίνετε, οι υποκατηγορίες ενδέχεται να μην παρακάμπτουν Λοιπόν, η πρακτική της δήλωσης όλων Επομένως, για να απαντήσετε στην ερώτηση 1, δεν χρειάζεται να δηλώσετε Όσον αφορά την ερώτηση 2, ένας βελτιστοποιητής μεταγλωττιστή και JVM μπορούν να επωφεληθούν Έτσι, για να απαντήσετε στην ερώτηση 2, ναι, όλοι οι μεταγλωττιστές θα αντιμετωπίσουν Μια πιο ενδιαφέρουσα ερώτηση: Θα βελτιστοποιηθούν όλοι οι μεταγλωττιστές Σημείωση: Η συζήτησή μας για το ιδιωτικό τελικό ισχύει μόνο για μεθόδους. Οι μεταβλητές του ιδιωτικού τελικού μέλους αντιμετωπίζονται διαφορετικά ιδιωτικός
μεθόδους τελικός
επισης?ιδιωτικός
μεθόδους ως τελικός
?ιδιωτικός
μεθόδους από το σχεδιασμό. Επιπλέον, το τελικός
Η λέξη-κλειδί λέει στον μεταγλωττιστή ότι οι υποκατηγορίες ενδέχεται να μην παρακάμψουν μια μέθοδο ανεξάρτητα από το επίπεδο πρόσβασης. Από ιδιωτικός
ήδη υπονοεί ότι μια υποκατηγορία ενδέχεται να μην παρακάμψει μια μέθοδο, δηλώνοντας a ιδιωτικός
μέθοδος για να είναι τελικός
είναι περιττό. Η υποβολή της δήλωσης δεν θα προκαλέσει προβλήματα, αλλά δεν θα ολοκληρώσει τίποτα από τότε ιδιωτικός
θεωρούνται αυτόματα τελικός
. ιδιωτικός
μεθόδους τελικός
θα έχει μία παρενέργεια. Κάθε αρχάριος προγραμματιστής Java που συναντά τον κωδικό σας θα εξομοιώσει τη χρήση του ιδιωτικός τελικός
, το σκέφτομαι ιδιωτικός
Πρέπει να δηλωθούν με αυτόν τον τρόπο. Έτσι, θα μπορείτε να κρίνετε ποιος έχει και ποιος δεν έχει έρθει σε επαφή με τον κωδικό σας. Μπορεί να αποδειχθεί μια ενδιαφέρουσα άσκηση. ιδιωτικός
μέλη τελικός
. ιδιωτικός
μεθόδους και τελικός
μεθόδους. Επειδή οι υποκατηγορίες ενδέχεται να μην παρακάμπτουν αυτούς τους τύπους, δεν χρειάζεται να κάνετε δυναμική δέσμευση κατά το χρόνο εκτέλεσης. Οι υποκατηγορίες δεν θα παρακάμψουν ποτέ τη μέθοδο, οπότε ο χρόνος εκτέλεσης θα ξέρει πάντα ποια μέθοδο να καλεί χωρίς αναζήτηση της ιεραρχίας κληρονομιάς. Κατά τη διάρκεια της σύνταξης ένας βελτιστοποιητής μεταγλωττιστής μπορεί ακόμη και να επιλέξει να ενσωματώσει όλα ιδιωτικός
και τελικός
μεθόδους για τη βελτίωση της απόδοσης. ιδιωτικός
μεθόδους ως τελικός
. Ο μεταγλωττιστής δεν θα επιτρέψει κανένα ιδιωτικός
μέθοδος για παράκαμψη. Ομοίως, όλοι οι μεταγλωττιστές θα αποτρέψουν την παράκαμψη των υποκατηγοριών τελικός
μεθόδους. τελικός
s και ιδιωτικός
έτσι ώστε να είναι inline; Η σύντομη απάντηση είναι όχι. Η συμπεριφορά βελτιστοποίησης θα εξαρτηθεί από τον μεταγλωττιστή και τις ρυθμίσεις του.
Μάθετε περισσότερα σχετικά με αυτό το θέμα
- Θέλουν περισσότερα? Δείτε το Ε & Α Java Ευρετήριο για τον πλήρη κατάλογο ερωτήσεων και απαντήσεων
//www.javaworld.com/javaworld/javaqa/javaqa-index.html
Αυτή η ιστορία, "Ιδιωτική και τελική;" δημοσιεύθηκε αρχικά από το JavaWorld.