Because you are accessing a method on an instance of a class. By the way, the instance name is the same as the class name, but since you do not have a static method with this name, the compiler assumes the correct method, i.e. Instance.
If you define a method as static, then it will again accept the only possible thing - calling the method staticin the class B, because the instance does not have such a method.
static static .