没有方法的接口

Vimal贝拉:

为什么Java引入一些没有定义方法的接口?例如CloneableSerializableType等等。

第二件事:在Class.class包中,定义了一个方法,registerNatives()没有身体,并从静态块调用,但Class.class不是抽象的,而是final为什么这样?以及为什么Java需要某种没有主体的方法从静态块中调用?

stinepike:

为什么Java引入一些没有定义方法的接口?

这称为标记或标记接口这些不用于任何用途或操作。这些方法用于标记或标记类。这样就可以确定someclass是否是这些类的子级。

关于第二个问题

如果仔细观察,您会看到声明为

 private static native void registerNatives();

因此registerNatives是本机方法。

那么什么是本机方法。如果您看到这样的问题

该方法以“本机”代码实现。也就是说,无法在JVM中运行的代码。它通常用C或C ++编写。

本机方法通常用于与以其他编程语言编写的系统调用或库进行接口。

因此,这些方法是从本机代码加载的。因此,您无需声明方法的主体,但它们仍然不是抽象的,因为它们是通过本机代码实现的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章