为了拥有指向某物的指针,您需要确切地知道它是什么类型,对于类,它包含的所有数据。我可以看到多态性如何适用于类:指针指向派生类中与父类具有相同数据的部分,并且“不知道”它下面的附加数据。
这对 Java 接口(interface)如何起作用?接口(interface)不提供数据,只提供一组有保证的方法。没有基类指针可以指向的统一数据。
如果这没有意义,我很抱歉;我可以试着让它更清楚。
最佳答案
这取决于 JVM 实现。接口(interface)的实现很棘手。
最简单的解决方案是为接口(interface)类型的每个参数传递两个 指针。第一个指针指向对象。第二个指针指向特定于派生类和接口(interface)组合的虚拟表。使用此解决方案,为特定接口(interface)转换找到合适的第二个指针涉及线性遍历列表。因此,它不是 O(1)
,而是与实现接口(interface)的数量成线性关系。如果不在稀疏表上浪费大量内存,就无法在 O(1)
中实现接口(interface)。
关于java - Java是如何实现接口(interface)多态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29483769/