This is an old revision of the document!
Ας δοκιμάσουμε το παρακάτω παράδειγμα κληρονομικότητας δύο κλάσεων που περιέχουν δύο στατικές μεθόδους με το ίδιο signature.
public class Animal { public static void testClassMethod() { System.out.println("The static method in Animal"); } public void testInstanceMethod() { System.out.println("The instance method in Animal"); } }
public class Cat extends Animal { public static void testClassMethod() { System.out.println("The static method in Cat"); } public void testInstanceMethod() { System.out.println("The instance method in Cat"); } }
public class TestCat { public static void main(String[] args) { Cat myCat = new Cat(); Animal myAnimal = myCat; Animal yourAnimal = new Animal(); Animal.testClassMethod(); Cat.testClassMethod(); System.out.println(""); myAnimal.testClassMethod(); yourAnimal.testClassMethod(); myCat.testClassMethod(); System.out.println(""); myCat.testInstanceMethod(); myAnimal.testInstanceMethod(); yourAnimal.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 Cat The instance method in Animal
Παρατηρούμε ότι σε αντίθεση