为什么abstract和strictfp关键字不能在方法声明中一起使用的原因?

Asc*_*ant 7 java abstract-methods strictfp

我正在读凯瑟琳塞拉的SCJP.
我理解抽象和最终关键字不能一起使用,因为它们相互矛盾,正如书中所解释的那样.

但是,我不明白为什么strictfp和abstract关键字不能一起使用.
我不知道strictfp关键字在Java中是如何工作的.

在我的想法中,可以声明一个抽象的strictfp方法,有一个子类,并以"strictfp方式"实现该方法.

这些关键字不能很好地融合在一起的原因是什么?
编辑
我已经仔细检查了这本书,它肯定会说

因为接口方法是抽象的,所以它们不能标记为final,strictfp或native.

来自SCJP的Katherine Sierra.第21页.

我的IDE(Eclipse Juno)也说我不能同时使用abstract和strictfp关键字.
嗯,为什么不呢?

Evg*_*eev 7

凯瑟琳·塞拉可能在谈论抽象方法.创建一个抽象方法strictfp是没有意义的,因为抽象方法只提供方法签名(如果有的话,还有throws子句),要使用它我们需要在子类中使用具体方法覆盖它,这个方法将有自己的修饰符这将覆盖其父方法的修饰符.也就是说,方法不会继承修饰符.

请注意,它不仅仅是sctriptfp,但除了public和之外,在抽象方法上不允许使用修饰符protected.如果你尝试,你会得到一个编译时错误.

  • @EvgeniyDorofeev,但我们可以在Java 8中的接口中使用方法体.那么为什么接口不允许使用`strictfp`? (2认同)