问题描述
我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的: public interface Runnable { public abstract void run();}
解决方案
这段代码在JDK 1.0时代已经是如此了。java.lang.Runnable的代码部分从JDK 1.0.2到JDK6都一直没有变过,只有注释里的说明有少量更新而已。已经能用就没人想去改了…吧。不过即便是当时的Java语言规范也是不鼓励这种写法的。Java语言规范第一版:9.4 抽象方法声明引用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.
解决方案二:
好像我写时都不加的
解决方案三:
314220663 写道这种贴都可以上主页,现在JAVAEYE混的人,什么技术水平?难道都是些新手了。能不能上主页,不是由我们决定的。哈哈。是由网站的机制。你很高手吗?高手不都是一步一步成长起来的嘛。
解决方案四:
akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案五:
该类是一接口(interface),其内的方法都是抽象(abstract)方法,abstract关键字可有可无!!
解决方案六:
接口就是特殊的抽象类,所以默认就是public abstract.
解决方案七:
骨之灵魂 写道djb_daydayup 写道li445970924 写道Checkmate 写道akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案八:
mengdboy 写道dongya1987 写道接口中的方法默认是public abstract的,写不写都行+1+2012
解决方案:
stupid,语法都没懂
解决方案:
这种贴都可以上主页,现在JAVAEYE混的人,什么技术水平?难道都是些新手了。
解决方案:
djb_daydayup 写道li445970924 写道Checkmate 写道akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
怎么简单就怎么写好了。
解决方案:
dongya1987 写道接口中的方法默认是public abstract的,写不写都行+1
解决方案:
不是默认就是public abstract
解决方案:
li445970924 写道Checkmate 写道akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
就像接口中的变量,默认就是public static final.如public interface If { int ONE = 1; public static final int TWO = 2; //一致}
解决方案:
我认为这样的写法是为了减少编译器的预处理,你写这样一个接口public interface Runnable { void run();}编译,再将class文件反编译,你会发现它变成了这样public interface Runnable { public abstract void run();}
解决方案:
想起我曾经的主管要求接口里的方法签名要写public但不写abstract……个人喜欢两者都不写,简洁。
解决方案:
RednaxelaFX 写道这段代码在JDK 1.0时代已经是如此了。java.lang.Runnable的代码部分从JDK 1.0.2到JDK6都一直没有变过,只有注释里的说明有少量更新而已。已经能用就没人想去改了…吧。不过即便是当时的Java语言规范也是不鼓励这种写法的。Java语言规范第一版:9.4 抽象方法声明引用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.+1
解决方案:
会被投新手贴么
解决方案:
写与不写都是一个意思interface的方法默认就是public abstract的字段默认就是public static final的
解决方案:
接口里面的方法天生就是public abstract声明的,这个不加,直接写 void xxx()也没问题的
解决方案:
Checkmate 写道akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
akunamotata 写道pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
dongya1987 写道接口中的方法默认是public abstract的,写不写都行+1
解决方案:
pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
接口中的方法默认是public abstract的,写不写都行
解决方案:
求语法达人解释。。。我还真不明白这个意义。
解决方案:
pianyao 写道我是想说, 其run方法前面为啥要加个abstract?看源码时偶然注意到的:
解决方案:
加是为了醒目,如果不加是为了简便...