我是一个Java初学者。 谁能解释一下为什么它打印输出2?
interface Foo {
int bar();
}
public class Beta {
class A implements Foo {
public int bar() {
return 1;
}
}
public int fubar(final Foo foo) {
return foo.bar();
}
public void testFoo()// 2
{
class A implements Foo {
public int bar() {
return 2;
}
}
System.out.println(fubar(new A()));
}
public static void main(String[] args) {
new Beta().testFoo();
}
}
最佳答案
那是因为您在这里重新定义了A类
:
class A implements Foo {
public int bar() {
return 2;
}
}
System.out.println(fubar(new A()));
因此,当您执行 return foo.bar();
时,您将返回 2
关于java - Java程序的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5871754/