code:
package com.qhong; public class Main extends B implements A{ public static void main(String[] args) throws Exception { new Main().action();; } public void action(){ System.out.println(super.x); System.out.println(A.x); //System.out.print(x); } } interface A{ int x = 0; //默认为public static final } class B{ int x = 1; }
Output:
1 0
如果取消注释,报错:
Error:(12, 26) java: 对x的引用不明确
com.qhong.B 中的变量 x 和 com.qhong.A 中的变量 x 都匹配
平常注意两个小问题
第一个逻辑操作&|与条件操作&&||区别
基本差别不大,都可以进行逻辑计算,但是条件操作有短路现象,即一旦能够确认表达式的值,那么余下的部分就不执行了。
int a = 0; int b = 0; if( (a = 3) > 0 || (b = 3) > 0 ) //操后a =3,b=0. if( (a = 3) > 0 | (b = 3) > 0 ) //操后a =3,b=3。
第二个,在代码运行中,return,finally那个先执行,如果finally内部有return呢
如果finally中没有return,try里面有return,那么先执行try->finally->try内的return
如果finally中存在return,try里面也有return,那么执行顺序try-finally->finally内的return
http://blog.csdn.net/junli_chen/article/details/49612463
http://blog.csdn.net/junli_chen/article/details/49613851