![](/img/trans.png)
[英]Can a java method implementing a base class method return an inherited class?
[英]Java use base class for inherited native method
如果我有
public class Foo {
static {
System.loadLibrary("foo");
}
private native void foo();
}
接着
public class Bar extends Foo {
}
在我的JNI中,我有:
JNIEXPORT void JNICALL
org_mikesolomon_soq_Bar_foo
(JNIEnv *env, jobject obj)
{
}
函数foo
自动成为Bar
一部分,还是编译器期望将foo
的定义作为Bar
的本机方法? 我问是因为我有一堆类是从低音类继承并以以下形式实现本机方法:
org_mikesolomon_soq_A_foo
org_mikesolomon_soq_B_foo
org_mikesolomon_soq_C_foo
org_mikesolomon_soq_D_foo
其中A
, B
, C
和D
都从基类继承。 这样可以避免我写出来
public native void foo();
在每个班级。
本机方法在Foo.
定义Foo.
在Bar
中提供实现没有任何意义,除非Bar的Java代码中有相应的重写本机方法声明。
目前尚不清楚您到底想做什么,但这不会做任何事情。 除非本机方法与Java本机方法声明相对应,否则它将被忽略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.