每种数据类型都是从Object继承的吗?

时间:2014-10-10 03:24:50

标签: java

我有一个方法,它接受Object类型的参数:

  public static void test(Object foo) 
    {
    System.out.println(foo);
  }

我可以传递foo:字符串,整数,布尔值等......几乎任何东西。我认为这是可能的,因为Object是其他所有内容继承自的基类,因此它接受任何数据类型都是有效的。我可以理解像Strings和Arrays这样的对象就是这种情况。但为什么这是原始类型的情况?整数,字符和布尔值是否也从Object继承?

2 个答案:

答案 0 :(得分:6)

不,原始类型继承自Object,因为它们不是类。将原始类型从Java 5+传递给此方法时会发生什么,称为autoboxing,编译器会将原语转换为其中一个包装类。例如,int将自动转换为Integer(使用幕后的临时变量),这将使代码可编辑。

答案 1 :(得分:1)

在这个拳击中然后加宽发生....例如:如果很长那么它第一个框进入Long然后加宽到对象类