对象类型和引用类型之间的差异

时间:2013-05-24 07:48:28

标签: java oop object polymorphism

我正在研究“Head First Java”中的多态性并得出了这个概念。有人可以用一个例子来解释吗?

  

编译器检查引用类的类 - 而不是Object类型。

那么参考类型和对象类型有什么区别?

2 个答案:

答案 0 :(得分:31)

我不认为他们对“对象类型”和“参考类型”的使用是标准化的,但这是我的解释。

考虑以下代码:

Object o = new Integer(3);

引用 o的类型为Object。它引用的对象的类型为Integer

因此“引用类型”为Object,“对象类型”为Integer

令人困惑的是,有(标准化的,官方的)术语“reference type”封装了可以引用的类型。在Java中包含所有类,枚举,接口,数组。它仅排除原始类型(int,...)。

答案 1 :(得分:6)

这些术语的含义如下:

  • 对象类型(在您的书中)=指示对象的实际运行时类型
  • 参考类型(在您的书中)=参考的静态类型

也许有些人会发现这些术语更容易理解。