我目前正在使用我的编程语言,它将仅具有接口并且没有对象继承。我有一个问题,因为我不知道如何制作vtable,因此可以在继承了许多接口的类中调用适当的方法。
在Java中,您可以这样编写
interface A {
void a();
}
interface B {
void b();
}
interface C {
void c();
}
class Something1 implements A, B{
... implementing a() and b() ...
}
class Something2 implements B, C{
... implementing b() and c() ...
}
...
B obj = new Something1();
obj.b();
obj = new Something2();
obj.b();
而且,JVM将仅知道对象继承了B接口(如果未优化),从而调用b()方法。
因此,我认为,首先JVM将转到对象的vtable,然后...如何在vtable中找到b()以及必须生成哪种vtable。
PS问题根本不是关于Java的。可能是C ++或PHP的示例,没关系。用Java编写示例更加简单
相关分类