有人可以向我解释一下创建 Interface 类的变量的含义是什么吗?
具体来说,下面的代码是什么意思:
InterfaceA x = (InterfaceA) factory.createFactoryObject(zz.CONST);
我一直认为接口(interface)(在 Java 中)只是方法声明的集合,其功能由实现接口(interface)的类定义。例如,如果我有一个界面:
public interface IMoveBehavior(){
public void move_Along_X();
public void move_Along_Y();
public void move_Along_Z();
}
然后该类将使用此接口(interface):
public class ABC() implements IMoveBehavior{
public void move_Along_X(){
//do whatever
}
public void move_Along_Y(){
//do whatever
}
public void move_Along_Z(){
//do whatever
}
}
那么,回到
InterfaceA x = (InterfaceA) factory.createFactoryObject(zz.CONST);
我真的不明白这在概念上到底意味着什么。有人可以解释一下或向我指出可以进行 self 教育的资源吗?
谢谢!!
最佳答案
您正在看到多态性的案例,它是使接口(interface)变得有用的核心概念之一。
InterfaceA x = (InterfaceA) factory.createFactoryObject(zz.CONST);
这里发生的是factory.createFactorObject(zz.CONST);返回一个对象。我不知道它到底是什么类型的对象,但是如果这段代码编译并成功运行,那么该对象至少必须是一个实现 InterfaceA 的类。因此,它具有 InterfaceA 中定义的所有方法的实现。
因此,您可以强制转换为 InterfaceA,并假定您可以使用 InterfaceA 中定义的方法。底层 JVM 负责准确了解这些方法是如何实现的(通过实例化对象的类)以及调用这些方法时要执行的操作。
关于java - 创建接口(interface)类java的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32143238/