关于NULL:请解释一下结果
public class Test
{
public static void main(String[] args){
ABC test = new ABC();
test.print(null);
}

}
class ABC{

public void print(Object some){
System.out.println("Object version print"); 
}
public void print(String some){
System.out.println("String version print");

}
/*输出结果为:String version print
当去掉public void print(String some){}方法时
输出结果为 :Object version print
*/
关于全局变量class Test{
   int age;
   age = 10;//为啥错误   //int age = 10;//正确
}基础不好 愿闻其详

解决方案 »

  1.   

    参数重载时如果两个函数的参数都匹配,那么:
    1、如果两个参数类型存在继承关系,如String的最终父类是Object,那么会选择范围小的那个,即String
    2、如果两个参数类型不存在继承关系,如String和Integer,这时JVM就没法判断该选择哪个了,你传递一个null进去编译会报错。int age;声明一个变量,赋值为0
    int age = 10;声明一个变量,赋值为10
    但是单纯的赋值操作必须在函数中或static代码块中。
    ps:这里的变量是类的成员域,不要理解成C中的全局变量
      

  2.   

    哦~
    总结下:
    1.如果两个参数类型存在继承关系,如String的最终父类是Object,那么会选择范围小的那个,即String
    2.成员变量单纯的赋值操作必须在函数中或static代码块中。