/** * If a subclass defines a static method with the same signature as a static method in the superclass, then the method in the subclass hides the one in the superclass.
The distinction between hiding a static method and overriding an instance method has important implications:
The version of the overridden instance method that gets invoked is the one in the subclass. The version of the hidden static method that gets invoked depends on whether it is invoked from the superclass or the subclass. */ 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 static void main(String[] args) {
Cat myCat = new Cat();
Animal myAnimal = myCat;
Animal.testClassMethod();
myAnimal.testInstanceMethod();
}
}
No comments:
Post a Comment