User Tools

Site Tools


java:hiding_static_methods

This is an old revision of the document!


Κρύβοντας στατικές μεθόδους

Ας δοκιμάσουμε το παρακάτω παράδειγμα κληρονομικότητας δύο κλάσεων που περιέχουν δύο στατικές μεθόδους με το ίδιο signature.

Animal.java
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");
    }
}
Cat.java
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");
    }
}
TestCat.java
public class TestCast {
    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

Παρατηρούμε ότι σε αντίθεση

java/hiding_static_methods.1424018730.txt.gz · Last modified: 2015/02/15 16:45 by gthanos