java:final

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:final [2016/02/26 11:15]
127.0.0.1 external edit
java:final [2017/02/16 13:38] (current)
gthanos
Line 1: Line 1:
 ====== Final Κλάσεις και Μέθοδοι ====== ====== Final Κλάσεις και Μέθοδοι ======
  
-Μπορείτε να δηλώσετε μία ή περισσότερες μεθόδους μία κλάσης ως //final//. Δηλώνοντας μία μέθοδο ως final η μέθοδος αυτή δεν μπορεί να επαναοριστεί σε μία υποκλάση της κλάσης αυτής. Ο συχνότερος λόγος για να δηλώσετε μία μέθοδο ως //final// είναι αν η υλοποίηση της μεθόδου δεν πρέπει να αλλάξει. Ένα παράδειγμα είναι το παρακάτω,​ όπου στον αλγόριθμο για ​το σκάκι :+Μπορείτε να δηλώσετε μία ή περισσότερες μεθόδους μία κλάσης ως //final//. Δηλώνοντας μία μέθοδο ως final η μέθοδος αυτή δεν μπορεί να επαναοριστεί σε μία υποκλάση της κλάσης αυτής. Ο συχνότερος λόγος για να δηλώσετε μία μέθοδο ως //final// είναι αν η υλοποίηση της μεθόδου δεν πρέπει να αλλάξει. Ένα παράδειγμα είναι το παρακάτω,​ όπου στην υλοποίηση ενός αλγορίθμου για σκάκι ​τα λευκά πιόνια παίζουν πάντα πρώτα:
  
 <code java> <code java>
Line 14: Line 14:
 </​code>​ </​code>​
  
-Γενικότερα, μέθοδοι που καλούνται από τους κατασκευαστές της κλάσης ή για την αρχικοποίηση των μελών της κλάσης εκτός κατασκευαστών __θα πρέπει__ να ορίζονται ως //final//, Εάν οι μέθοδοι αυτές αλλάζουν την υλοποίηση τους σε υποκλάσεις μπορούν να δημιουργηθούν προβλήματα ως προς την ορθή αρχικοποίηση των ​μεταβλητών της κλάσης.+Επίσης, μέθοδοι που καλούνται από τους κατασκευαστές της κλάσης ή για την αρχικοποίηση των μελών της κλάσης εκτός κατασκευαστών __θα πρέπει__ να ορίζονται ως //final//. Ο λόγος είναι ότι στην περίπτωση που ​οι μέθοδοι αυτές αλλάξουν την υλοποίηση τους σε υποκλάσεις μπορούν να δημιουργηθούν προβλήματα ως προς την ορθή αρχικοποίηση των ​πεδίων της κλάσης.
  
 Τέλος, μπορείτε να προσδιορίσετε μία κλάση ως //final//, όταν θέλετε να δηλώσετε ότι η συγκεκριμένη κλάση δεν πρέπει να έχει υποκλάσεις. Ένα παράδειγμα τέτοια κλάσης είναι η κλάση [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​lang/​String.html | String]] της standard βιβλιοθήκης της Java. Τέλος, μπορείτε να προσδιορίσετε μία κλάση ως //final//, όταν θέλετε να δηλώσετε ότι η συγκεκριμένη κλάση δεν πρέπει να έχει υποκλάσεις. Ένα παράδειγμα τέτοια κλάσης είναι η κλάση [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​lang/​String.html | String]] της standard βιβλιοθήκης της Java.
  
-|Προηγούμενο:​ [[ :java:type_casting ​Ρητές (explicit) ​και άρρητες (implicit) ​μετατροπές τύπων ​]] | Επόμενο:​ [[ :java:multiple_inheritance ​Κληρονομικότητα Πολλαπλών Γονικών Κλάσεων ​]]|+|Προηγούμενο:​ [[ :java:inheritance_subclassing_vs_encapsulating ​Κριτήριo χρήσης της κληρονομικότητας ]] | [[ :toc | Περιεχόμενα ]]  | Επόμενο:​ [[:java:super_operator ​Ο τελεστής super]]|
  
java/final.1456485333.txt.gz · Last modified: 2016/03/26 06:50 (external edit)