见以下例子:
interface I {}
class A implements I {}
class B implements I {}
class Foo{
void f(A a) {}
void f(B b) {}
static public void main(String[]args ) {
I[] elements = new I[] {new A(), new B(), new B(), new A()};
Foo o = new Foo();
for (I element:elements)
o.f(element);//won t compile
}
}
为什么超载方法不支持上传?
如果在运行时执行超载,它会提供更大的灵活性。 例如,访问者模式会更简单。 是否有任何技术原因阻止爪哇这样做?