現在、匿名メソッドのオーバーライドと継承に関する奇妙な問題が発生しています。明確に説明するのは難しいので、まずここに私のコードを示します:
public abstract class A {
public void draw() {
someAction();
}
}
public class B extends A {
// Other methods
}
ArrayList< A > listA = new ArrayList< A >();
B objectB = new B() {
@Override
public void draw() {
someActionOverriden();
}
}
listA.add( objectB );
for( A item : listA ) {
item.draw();
}
問題は、draw()
匿名でオーバーライドされたメソッドが呼び出されることはありません。これitem
は classが原因である可能性があるためA
、匿名メソッドには決して行かないと思いますが、この種の設計を実装する方法はありますか?
編集:別のこと:試してみるobjectB.draw()
と、匿名メソッドが呼び出されます!