对象类型和引用类型之间的区别

2022-09-02 19:21:00

我正在从“Head First Java”学习多态性,并得出了这个概念。任何人都可以用一个例子来解释一下吗?

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

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


答案 1

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

请考虑以下代码:

Object o = new Integer(3);

引用的类型为 。它引用的对象的类型为 。oObjectInteger

因此,“引用类型”将是,“对象类型”将是 。ObjectInteger

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


答案 2

这些术语的含义如下:

  • 对象类型(在您的书中)= 引用对象的实际运行时类型
  • 参考类型(在您的书中)= 参考文献的静态类型

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