Yes, this is overload. From JLS 8.4.9 :
If two methods of a class (both declared in the same class or both inherited by the class or one declared and one inherited) have the same name, but signatures that are not equivalent for overriding, then the method name said that it was overloaded.
It’s pretty rare (IMO) that it is a good idea to have the same name for both static and instance, but that’s completely true.
, , , . :
public class Test {
public void foo(String x) {
}
public static void foo(Object x) {
}
public static void bar() {
foo("");
}
}
, ( ), :
Test.java:9: error: non-static method foo(String) cannot be referenced
from a static context
foo("");
^