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:26] – 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(); | + | |
- | | + | myAnimalCat.testClassMethod(); |
- | | + | myAnimal.testClassMethod(); |
- | | + | myCat.testClassMethod(); |
- | myAnimal.testInstanceMethod(); | + | |
- | } | + | System.out.println("" |
+ | |||
+ | myAnimalCat.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.1424017615.txt.gz · Last modified: 2015/02/15 16:26 (external edit)