コンパイル時にクラスを拡張する機能がありますが、すでにインスタンス化されているスーパークラスのインスタンスを使用して、実行時にこのサブクラスのインスタンスを作成できる必要があります。
スーパークラスコンストラクターはサブクラスコンストラクターの前にすでに呼び出されているため、これは理論的には可能です。
サブクラスへのインスタンス化を変更したり、元のインスタンス化を中断したりするのに十分なプログラムへのアクセス権がありません。
ユースケース:クラスXのインスタンスの既存の配列があります。私のコードは後にロードされます。インスタンスXの1つのメソッドの1つを、ロードされたサブクラスY extends Xでオーバーライドする必要があります。親プログラムはその配列を介してのみオブジェクトにアクセスするため、その配列要素をYインスタンスに置き換える必要がありますが、元々その配列にインスタンス化されたかのように動作します。スーパークラスインスタンスと転送呼び出しを単に囲むことはできません。また、スーパークラスを再インスタンス化することには困難な問題があります。
それがもっと明確になることを願っています。