class Callback{
public void notify(A arg){ ...}
public void notify(B arg){ ...}
private static class B extends A { ...}
public A create() { return new B(...); }
}
Callback callback = new Callback();
A a = new A(...);
A b = callback.create();
callback.notify(a);
callback.notify(b);
我发现A在这种情况下两次都调用了重载,即使在调试器中它知道a是 type B。这是应该发生的事情还是内部阶级以某种方式搞砸了?