18

我是从“Head First Java”开始研究多态性并得出这个概念的。任何人都可以用一个例子解释一下吗?

编译器检查引用类型的类——而不是对象类型。

那么引用类型和对象类型有什么区别呢?

4

2 回答 2

43

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

考虑这段代码:

Object o = new Integer(3);

参考 o类型Object。它引用的对象是类型Integer

所以“引用类型”是Object,“对象类型”是Integer.

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

于 2013-05-24T07:51:06.000 回答
8

这些术语的含义如下:

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

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

于 2013-05-24T08:00:43.717 回答