因为我们使用"default"关键字作为访问说明符,并且它可以在switch语句中使用以及完全不同的目的,所以我很好奇java中有任何其他关键字可以用于多个目的
Boz*_*zho 13
访问修饰符的"默认"不是关键字 - 您不写:
default void doSomething()
但是,在指定注释属性的默认值时 - 它是.
switch (a) {
default: something();
}
Run Code Online (Sandbox Code Playgroud)
和
public @interface MyAnnotation {
boolean bool() default true;
}
Run Code Online (Sandbox Code Playgroud)
这与finalJon Skeet指出的一起似乎涵盖了一切.也许除了"重载" for关键字:
for (initializer; condition; step) 和 for (Type element : collection)
你不能default用作访问说明符,所以我不认为即便如此.(编辑:正如Bozho指出的那样,它可以用于注释.)
final 表示"不能从/被覆盖"和"只读",它们是两种不同但相关的含义.
default既可以在开关中使用,也可以作为注释中的默认值(正如 Bozho 所指出的)final意味着“不能派生/覆盖”和“只读”,这是两个不同但相关的含义(正如乔恩所指出的)extends既可以用来指定类的超类型,也可以在通配符和类型变量中使用来放置约束(相关但不完全相同)( List<? extends Foo>)super可用于指定当前类的超类中的某些内容,或在通配符中放置约束 ( List<? super Foo>)static意味着“类的一部分,而不是实例”(对于方法、属性或初始值设定项)以及作为static importclass声明一个类 ( class Foo {}),或引用一个类文字 ( Foo.class) (由 ILMTitan 回答)for可以在普通的 for 循环和“增强”的 for 中使用,但这更像是重载(正如 Bozho 所说的那样),而不是真正具有两种含义)