java:inheritance

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 Both sides next revision
java:inheritance [2016/02/12 15:51]
gthanos [Implicit και Explicit Casting of Objects]
java:inheritance [2016/02/12 17:08]
gthanos [Final Κλάσεις και Μέθοδοι]
Line 100: Line 100:
  
  
-===== Final Κλάσεις και Μέθοδοι ===== 
- 
-Μπορείτε να δηλώσετε μία ή περισσότερες μεθόδους μία κλάσης ως //final//. Δηλώνοντας μία μέθοδο ως final η μέθοδος αυτή δεν μπορεί να επαναοριστεί σε μία υποκλάση της κλάσης αυτής. Ο συχνότερος λόγος για να δηλώσετε μία μέθοδο ως //final// είναι αν η υλοποίηση της μεθόδου δεν πρέπει να αλλάξει. Ένα παράδειγμα είναι το παρακάτω:​ 
- 
-<code java> 
-class ChessAlgorithm { 
-    enum ChessPlayer { WHITE, BLACK } 
-    ... 
-    final ChessPlayer getFirstPlayer() { 
-        return ChessPlayer.WHITE;​ 
-    } 
-    ... 
-} 
-</​code>​ 
- 
-Γενικότερα,​ μέθοδοι που καλούνται από τους κατασκευαστές της κλάσης __θα πρέπει__ να ορίζονται ως //final// καθώς αν αλλάζουν την υλοποίηση τους σε υποκλάσεις μπορούν να δημιουργηθούν προβλήματα ως προς την ορθή αρχικοποίηση των μεταβλητών της κλάσης. 
- 
-Τέλος, μπορείτε να προσδιορίσετε μία κλάση ως //final//, όταν θέλετε να δηλώσετε ότι η συγκεκριμένη κλάση δεν πρέπει να έχει υποκλάσεις. Ένα παράδειγμα τέτοια κλάσης είναι η κλάση [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​lang/​String.html | String]] της standard βιβλιοθήκης της Java. 
- 
-|Προηγούμενο:​ [[ :​java:​interfaces | Διεπαφές ]] | Επόμενο:​ [[ :​java:​multiple_inheritance | Κληρονομικότητα πολλαπλών γονικών κλάσεων ]]| 
  
java/inheritance.txt · Last modified: 2016/03/31 08:25 by doufexi