質問です。
JAVAの設計理念に関係するような問題かもしれないのですが…。

例えばBaseというクラスがあるとします。
私はそれをもうちょっとだけ便利にしたいと思い、継承して色々メソッドを追加したMyBaseを作りました。

で、システムから与えられるBaseをMyBaseにすり替えようと思い。

void CallFromSystem(Base b){
this.myBase = (MyBase)b;
}

と変換しようとしたのですが、当然ながらClassCastExceptionが出てしまいます。
Baseであるbはシステム側で生成されるため、「MyBaseを作ってくれよー」という無理が効かないのですが、解決方法はありませんでしょうか。

既に生成されているものを、派生型にすり替えることができれば
例えばとあるメソッドが呼ばれた回数を履歴にとるなど出来て便利なのですが…。