我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
public interface Runnable {
public abstract void run();
}
我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
public interface Runnable {
public abstract void run();
}
这段代码在JDK 1.0时代已经是如此了。java.lang.Runnable的代码部分从JDK 1.0.2到JDK6都一直没有变过,只有注释里的说明有少量更新而已。已经能用就没人想去改了…吧。
不过即便是当时的Java语言规范也是不鼓励这种写法的。[url=http://java.sun.com/docs/books/jls/first_edition/html/9.doc.html#78651]Java语言规范第一版:9.4 抽象方法声明[/url]
[quote]Every method declaration in the body of an interface is implicitly abstract, so its body is always represented by a semicolon, not a block. For compatibility with older versions of Java, it is permitted but discouraged, as a matter of style, to redundantly specify the abstract modifier for methods declared in interfaces.
Every method declaration in the body of an interface is implicitly public. It is permitted, but strongly discouraged as a matter of style, to redundantly specify the public modifier for interface methods.[/quote]