哪个是包含实现接口的 class 对象的接口变量的引用对象?

Which is the referenced object of an interface variable containing an object of a class which implements the interface?

我创建了一个实现 Measurable 接口的电机 class。 然后我创建一个名为 motorTemperature 的 Measurable 类型的变量。

如果我...

 Measurable motorTemperature = new Motor (x); 

motorTemperature 将引用哪个对象? (电机型还是可测型?

在此代码中:

Measurable motorTemperature = new Motor(x); 

我们创建一个 Motor 类型的对象。它是一个电机,并将继续是一个电机。

Motor 实现了 Measurable 接口。因此,我们可以将对 Motor 的引用分配给 Measurable 类型的变量(事实上我们这样做了)。这不会改变 Motor 是 Motor 的事实。

但是,由于我们现在对电机的唯一引用是这个 Measurable,我们对它的唯一访问只能说明通过 Measurable 接口可以表达的内容。我们不能向它询问任何电机属性,也不能要求它执行未定义为 Measurable 中的方法的电机动作。

P.S。 motorTemperature 是否是 Measurable 的好名称是一个单独的问题。如果电机唯一可用的测量值是它的温度,那可能是有道理的。如果我们可以调用 'motorTemperature.getRPM()' 那么这个名字似乎不太合适。