public class Motor implements Measurable {
...
}
public Measurable motorTemperature = new Motor();
对象的类型是什么motorTemperature
?是电机,可测量,还是两者兼而有之?
Motor
即使将对象分配给静态类型为 interface 的变量,对象的运行时类型仍然存在Measurable
。类型定义了行为,而接口定义了哪些方法可以在没有强制转换的情况下调用。
它是一个 Motor 对象,因为您实例化了一个实现接口 Measurable 的新 Motor() 对象
您无法实例化类型 Measurable,因为无法实例化接口。接口告诉实现该接口的对象将能够执行 x 操作
它是一个类 Motor 和接口 Measurable。两者都是不同意义上的类型,因为
接口和类的分离是 Java 给人一种多重继承印象的方式,尽管接口的实现只指定了契约。