iteye_1218 2011-03-07 13:26
浏览 402
已采纳

大家说说Java的Runnable接口

我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:

 

public interface Runnable {

    public abstract void run();

}

 

  • 写回答

30条回答 默认 最新

  • rednaxelafx 2011-03-07 13:26
    关注

    这段代码在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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(29条)

报告相同问题?