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 [2017/02/16 13:33]
gthanos
java:final [2017/02/16 13:38]
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:​inheritance_subclassing_vs_encapsulating | ΡΚριτήριo χρήσης της κληρονομικότητας ]] | [[ :toc | Περιεχόμενα ]]  | Επόμενο:​ [[:​java:​super_operator | Ο τελεστής super]]|+|Προηγούμενο:​ [[ :​java:​inheritance_subclassing_vs_encapsulating | Κριτήριo χρήσης της κληρονομικότητας ]] | [[ :toc | Περιεχόμενα ]]  | Επόμενο:​ [[:​java:​super_operator | Ο τελεστής super]]|
  
java/final.txt · Last modified: 2017/02/16 13:38 by gthanos