注释访问修饰符 - 公共与抽象

  • 本文关键字:抽象 访问 注释 java
  • 更新时间 :
  • 英文 :


Java中注释元素的公共修饰符和抽象修饰符有什么区别?

例如,我们可以对注释元素使用访问修饰符public

public @interface MyAnnotation {
    public String element();// declared as public method
}

我们还可以为注释元素使用访问修饰符abstract

public @interface MyAnnotation {
    abstract String element();// declared as abstract method
}

我认为默认情况下注释方法是抽象的,也是公开的

那么这些修饰符的实际影响是什么?

在java中,注解是一种特殊类型的接口。所以它遵循接口的规则和接口方法默认是publicabstract。尽管有默认考虑,您仍然可以显式添加 publicabstract 修饰符。但它将被认为是多余的

此外,如果在注释中声明变量,则默认情况下它将是一个finalstatic变量。

没有影响 - 这只是一个多余的声明。例如,与接口的方法相同。

两者都是多余的。如 JLS 中所述,默认情况下,接口的方法是抽象的和公共的。

每个interface都是隐式abstract的。该接口隐式声明公共abstract成员方法。

注释类型是一种特殊的接口。在接口中,所有方法都是隐式的公共和抽象的,但允许显式声明方法是公共的和/或抽象的。但是,将接口方法声明为公共或抽象方法不起作用。

最新更新