ところで

先日の話題だけれども。
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の方をコンパイルできたとして、その利点がない、と言った方がいい。