我认为,区分 对象 (存在于执行时,只是具有执行时间类型)和具有编译时类型的 表达式 (例如变量)之间,这一点很重要。
因此,在这种情况下:
A a = new B();
a是类型的变量
A。它在执行时的值是对type对象的引用
B。
Java语言规范对对象的类型使用“运行时类”(例如,为了重载,如15.12.4.4节中所述)。在其他地方,我认为它只是将“
type”用作表达式的类型,即编译时类型。

我认为,区分 对象 (存在于执行时,只是具有执行时间类型)和具有编译时类型的 表达式 (例如变量)之间,这一点很重要。
因此,在这种情况下:
A a = new B();
a是类型的变量
A。它在执行时的值是对type对象的引用
B。
Java语言规范对对象的类型使用“运行时类”(例如,为了重载,如15.12.4.4节中所述)。在其他地方,我认为它只是将“
type”用作表达式的类型,即编译时类型。