在c++里a函数中调用了b函数,则b必须在a之前要有声明过才可以,java则不需要,这是为什么?底层什么机理?