ところで
先日の話題だけれども。
http://www.komaba.utmc.or.jp/~plaster/diary/?040624
ちょっとだけ突っ込みいれると、
こういうことがどうして出来ないんだろうと疑問だったんですが、出来てしまうと HogeVectorをVectorとして扱ったときに困るということに思い当たり、やっと納得しました。
Vector v = new HogeVector(); v.add(new Object()); // Vectorなのだから、これは出来なければならないgetの方も同様。
Object o = v.get(n); // これもまた出来なければならない辻褄が合わなくなりますね。つーかなんでこんなことに気づかない > 自分
これって、getの方はコンパイルが出来さえすれば可能だよね。
Object o = new Vector();
もちろん、それには問題がある・・・というか、むしろ、getの方をコンパイルできたとして、その利点がない、と言った方がいい。