本机实现抽象方法

Has*_*lah 6 java java-native-interface abstract-class

Java中是否允许在类中使用抽象方法,然后使用JNI将其实现在使用本机语言的其他方法中.

例:

abstract class Mommy {
abstract protected void call();
}
class Son extends Mommy {
 native protected void call() /*
'native code'
*/
}
Run Code Online (Sandbox Code Playgroud)

什么是预期的行为是可能发生的运行时错误还是"解决方法"的一切都很好?

Ste*_*n C 4

预期的行为是什么,是可能发生的运行时错误还是“解决方法”一切正常?

如果您(正确地)实现了本机方法并加载包含该实现的本机库,那么一切都会正常。

我想知道是否容易出现错误或违反任何良好/最佳实践?

不,也不。

或者至少,它并不比任何使用本机代码更容易出现错误或更违背“最佳实践”。

顺便说一句,在你使用诸如“最佳实践”之类的狡猾术语之前,你确实应该阅读詹姆斯·巴赫的“没有最佳实践”文章。