谁帮我看看这个程序

来源:百度知道 编辑:UC知道 时间:2024/05/27 19:10:13
interface Ex9interface {
void f();
}
public class Ex9 {
public Ex9interface f(boolean b) {
while(b) {
class Ex9inner implements Ex9interface {
public void f() { System.out.println("f()"); }
}
return new Ex9inner();
}
return null;
}
public static void main(String[] args) {
Ex9 e = new Ex9();
e.f(true).f();
}
}

第二个return为什么没有将第一个return的内容覆盖掉呢?

原因是,你传的是true,在while里面的语句都要执行
当return有值的时候,就不会执行后面的了

因为第一个return执行后,直接就返回并跳出该方法了,并不执行第二个return。