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

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

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

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

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

考虑以下代码:

Object o = new Integer(3); 

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

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

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

这些术语的含义如下:

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

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