What is method hiding in Java? Even the JavaDoc explanation is confusing

public class Animal { public static void foo() { System.out.println(“Animal”); } } public class Cat extends Animal { public static void foo() { // hides Animal.foo() System.out.println(“Cat”); } } Here, Cat.foo() is said to hide Animal.foo(). Hiding does not work like overriding, because static methods are not polymorphic. So the following will happen: Animal.foo(); // … Read more