当一个类实现了一个接口,是否意味着从该类实例化的对象被视为该接口的对象?
例如,当一个类实现了Runnable接口时,从该类创建的实例被称为Runnable对象吗?
因此,在需要Runnable对象引用变量的地方(例如,在方法或构造函数的参数中),为什么我们可以将该类的实例作为参数提供给该方法或构造函数呢?这是因为通过实现接口,该类本质上是接口的一个对象吗?
例如,当一个类实现了Runnable接口时,从该类创建的实例被称为Runnable对象吗?
因此,在需要Runnable对象引用变量的地方(例如,在方法或构造函数的参数中),为什么我们可以将该类的实例作为参数提供给该方法或构造函数呢?这是因为通过实现接口,该类本质上是接口的一个对象吗?
this
作为方法的参数传递?” 这是正确的。“这只能生效,因为this
[...] 包含了接口实现的方法?”一个类可以包含接口中的所有方法,而无需实现该接口(例如,因为作者忘记写implements XyzInterface
)。在这种情况下,仅具有所有方法是不够的:需要声明该类为接口的实现,并承诺实现所有接口方法。 - Sergey Kalinichenko