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

时间:2019-05-28 21:47:30

标签: java interface object-reference

我创建了一个Motor类,该类实现了Measurable接口。 然后,创建一个名为motorTemperature的Measurable类型的变量。

如果我...

 Measurable motorTemperature = new Motor (x); 

哪个是motorTemperature引用的对象? (电机或可测量类型?

1 个答案:

答案 0 :(得分:0)

在此代码中:

Measurable motorTemperature = new Motor(x); 

我们创建一个Motor类型的对象。它是一个马达,并将继续保持马达状态。

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

但是,由于我们现在对电机的唯一参考就是可测量的,因此我们对其的唯一访问只能说是通过可测量接口可以表达的内容。我们既不能询问任何有关Motor的属性,也不能要求它执行未在Measurable中定义为方法的Motor动作。

P.S。 motorTemperature是否是可衡量的好名字是一个单独的问题。如果电动机唯一可用的测量值是温度,则可能有意义。如果我们可以调用“ motorTemperature.getRPM()”,则该名称似乎不太合适。