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
。这是应该发生的事情还是内部阶级以某种方式搞砸了?