This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
java:hiding_static_methods [2015/03/01 19:22] gthanos |
java:hiding_static_methods [2016/03/31 08:46] (current) doufexi |
||
|---|---|---|---|
| Line 43: | Line 43: | ||
| System.out.println(""); | System.out.println(""); | ||
| | | ||
| - | myCat.testInstanceMethod(); | ||
| myAnimalCat.testInstanceMethod(); | myAnimalCat.testInstanceMethod(); | ||
| myAnimal.testInstanceMethod(); | myAnimal.testInstanceMethod(); | ||
| + | myCat.testInstanceMethod(); | ||
| } | } | ||
| } | } | ||
| Line 60: | Line 60: | ||
| The static method in Cat | The static method in Cat | ||
| - | The instance method in Cat | ||
| The instance method in Cat | The instance method in Cat | ||
| The instance method in Animal | The instance method in Animal | ||
| + | The instance method in Cat | ||
| + | |||
| </code> | </code> | ||
| - | Παρατηρούμε ότι ο τύπος των δεδομένων από τον οποίο καλούμε μία στατική μέθοδο είναι καθοριστικός για το ποια μέθοδος θα κλήθεί τελικά. Για παράδειγμα, η μεταβλητή ''myAnimal'' ορίζεται ως τύπου ''Animal'' αλλά δείχνει σε ένα αντικείμενο τύπου ''Cat''. Η στατική μέθοδος που τελικά καλείται είναι εκείνη που ορίζεται από τον τύπο της reference μεταβλητής (''Animal'' ή ''Cat'') και όχι από το ίδιο το αντικείμενο στο οποίο δείχνει αυτή, όπως θα περίμενε ίσως κανείς να ισχύει με βάση τον δυναμικό πολυμορφισμό της προηγούμενης παραγράφου. | + | Παρατηρούμε ότι ο τύπος των δεδομένων από τον οποίο καλούμε μία στατική μέθοδο είναι καθοριστικός για το ποια μέθοδος θα κλήθεί τελικά. Για παράδειγμα, η μεταβλητή ''myAnimal'' ορίζεται ως τύπου ''Animal'' αλλά δείχνει σε ένα αντικείμενο τύπου ''Cat''. Η στατική μέθοδος που τελικά καλείται είναι εκείνη που ορίζεται από τον τύπο της reference μεταβλητής (''Animal'' ή ''Cat'') και όχι από το ίδιο το αντικείμενο στο οποίο δείχνει αυτή, όπως ίσως θα περίμενε ίσως κανείς να ισχύει με βάση [[:java:polymorphism|τον δυναμικό πολυμορφισμό της προηγούμενης παραγράφου]]. |
| Οι 3 τελευταίες γραμμές του προγράμματος αναφέρονται σε δυναμικό πολυμορφισμό για να δείξουν την αντίθεση των αποτελεσμάτων στην κλήση στατικών και μη στατικών μεθόδων. | Οι 3 τελευταίες γραμμές του προγράμματος αναφέρονται σε δυναμικό πολυμορφισμό για να δείξουν την αντίθεση των αποτελεσμάτων στην κλήση στατικών και μη στατικών μεθόδων. | ||
| - | |Προηγούμενο: [[ :java:polymorphism | Στατικός και Δυναμικός Πολυμορφισμός ]] | Επόμενο: [[ :java:abstract_classes | Abstract Κλάσεις ]]| | + | |Προηγούμενο: [[ :java:polymorphism | Στατικός και Δυναμικός Πολυμορφισμός ]] | [[ :toc | Περιεχόμενα ]]| Επόμενο: [[ :java:abstract_classes | Abstract Κλάσεις ]]| |