这是重载优先级的问题,当一个方法被重载时,在调用这个方法的时候编译期间就已经确定了它会执行哪个方法,是依次向上转型,比如如果你传入了一个char类型的参数,那么选择重装方法的优先级如下char->int->long->Character->Serializable-Object->char... 当转型到封装类时还找不到相应的方法,那么就寻找其封装类的接口,如果还找不着,那就直接到父类,再是父类的父类(按继承关系从下向上找,越上优先级越低),而最低的是变长参数. 即使传入的参数是null,上面的规则也是适用的. 这其实是分派中的静态分派的一个应用.详情参见JVM规范中的分派. |