Final
- Final关键字防止method在子类中被覆盖(overridden),通常用在增强API method的功能性(即不能随意更改其特定作用,比如String的method)
Abstract
- 被修饰了abstract的method没有花括号{},但是有分号(函数体就是一个分号)
- abstract类可以包含non-abstract method,但是non-abstract类不能只含一个abstract method
- 任何扩展(extend)了Abstract类的类必须实现父类所有的abstract methods,除非子类也是abstract的。换一句话说,第一个concrete class必须实现所有父类的abstract methods
- 根据abstract的含义,abstract不能和final同时用,也不能和static同时用。
Synchronized
- synchronized可以和任何访问控制修饰符一起使用
Native
- Native method的函数体必须是分号(就像 abstract method),意味具体实现忽略(不在此处实现)
Strictfp
- 表明浮点数或者任何浮点运算符合IEEE 754标准
Methods with Variable Argument Lists (可变长输入参数)
-
Var-arg必须是最后一个参数,而且一个method只能有一个var-arg
-
具体语法是: type…(space)数组的名字
-
下面举例说明
//合法的 void doStuff(int... x) { } void doStuff2(char c, int... x) { } void doStuff3(Animal... animal) { } //0 to many Animals //非法的 void doStuff4(int x...) { } //错误语法 void doStuff5(int... x, char... y) { } //只能有一个var-arg void doStuff6(String... s, byte b) { } //var-arg必须是最后一个参数