java:hiding_static_methods
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| java:hiding_static_methods [2015/02/15 16:29] – gthanos | java:hiding_static_methods [2017/03/03 14:03] (current) – gthanos | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Κρύβοντας στατικές μεθόδους | + | ===== Καλώντας στατικές μεθόδους |
| Ας δοκιμάσουμε το παρακάτω παράδειγμα κληρονομικότητας δύο κλάσεων που περιέχουν δύο στατικές μεθόδους με το ίδιο // | Ας δοκιμάσουμε το παρακάτω παράδειγμα κληρονομικότητας δύο κλάσεων που περιέχουν δύο στατικές μεθόδους με το ίδιο // | ||
| Line 5: | Line 5: | ||
| <code java Animal.java> | <code java Animal.java> | ||
| public class Animal { | public class Animal { | ||
| - | | + | |
| - | System.out.println(" | + | System.out.println(" |
| - | } | + | } |
| - | public void testInstanceMethod() { | + | public void testInstanceMethod() { |
| - | System.out.println(" | + | System.out.println(" |
| - | } | + | } |
| } | } | ||
| </ | </ | ||
| Line 16: | Line 16: | ||
| <code java Cat.java> | <code java Cat.java> | ||
| public class Cat extends Animal { | public class Cat extends Animal { | ||
| - | | + | |
| - | System.out.println(" | + | System.out.println(" |
| - | } | + | } |
| - | public void testInstanceMethod() { | + | public void testInstanceMethod() { |
| - | System.out.println(" | + | System.out.println(" |
| - | } | + | } |
| + | } | ||
| + | </ | ||
| + | |||
| + | <code java TestCat.java> | ||
| + | public class TestCat { | ||
| + | public static void main(String[] args) { | ||
| + | Cat myCat = new Cat(); | ||
| + | Animal myAnimalCat = myCat; | ||
| + | Animal myAnimal = new Animal(); | ||
| + | |||
| + | Animal.testClassMethod(); | ||
| + | Cat.testClassMethod(); | ||
| - | | + | |
| - | Cat myCat = new Cat(); | + | |
| - | | + | |
| - | | + | |
| - | + | myCat.testClassMethod(); | |
| - | Animal.testClassMethod(); | + | |
| - | | + | System.out.println("" |
| - | | + | |
| - | + | | |
| - | myCat.testInstanceMethod(); | + | myAnimal.testInstanceMethod(); |
| - | myAnimal.testInstanceMethod(); | + | myCat.testInstanceMethod(); |
| - | | + | |
| - | } | + | |
| } | } | ||
| </ | </ | ||
| + | Η έξοδος του παραπάνω προγράμματος είναι | ||
| + | |||
| + | < | ||
| + | The static method in Animal | ||
| + | The static method in Cat | ||
| + | |||
| + | The static method in Animal | ||
| + | The static method in Animal | ||
| + | The static method in Cat | ||
| + | |||
| + | The instance method in Cat | ||
| + | The instance method in Animal | ||
| + | The instance method in Cat | ||
| + | </ | ||
| + | |||
| + | Παρατηρούμε ότι ο τύπος των δεδομένων από τον οποίο καλούμε μία στατική μέθοδο είναι καθοριστικός για το ποια μέθοδος θα κλήθεί τελικά. Για παράδειγμα, | ||
| + | |||
| + | Οι 3 τελευταίες γραμμές του προγράμματος αναφέρονται σε δυναμικό πολυμορφισμό για να δείξουν την αντίθεση των αποτελεσμάτων στην κλήση στατικών και μη στατικών μεθόδων. | ||
| + | |||
| + | |Προηγούμενο: | ||
java/hiding_static_methods.1424017758.txt.gz · Last modified: 2015/02/15 16:29 by gthanos
