Abstract和final是访问修饰符或访问说明符

时间:2014-06-04 14:49:26

标签: java access-modifiers access-specifier

abstract final class Outer {

}

所以我正在编译上面的代码并且出现了明显的错误,但是错误是访问修饰符的非法组合,但是java doc http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html说只有3个访问修饰符(public,private和protected)所以这些abstract,final,public,private和protected是访问修饰符或访问说明符还是其他东西?因为在许多书籍和网站中,他们提到这些关键字有时是访问修饰符,有时是访问说明符。我在这里很困惑。

1 个答案:

答案 0 :(得分:3)

在类声明的上下文中,根据JLS #8.1.1,这些都是类修饰符。

如果你进一步阅读,你会看到只有public,private和protected是访问修饰符(这是有意义的:它们确定该类是否可以从代码的其他部分访问)。

所以是的,技术上,抽象和最终不是访问修饰符,错误消息可能更精确。请注意,javac(Java 8)错误消息为:

  

修饰符的非法组合:抽象和最终