Tengo la capacidad de extender una clase en tiempo de compilación, pero necesito poder crear una instancia de esta subclase en tiempo de ejecución usando una instancia de la superclase que ya se creó una instancia.Java: Extendiendo clase en tiempo de ejecución
Esto debería ser posible en teoría porque los constructores de superclase ya están llamados antes del constructor de la subclase.
No tengo acceso al programa lo suficiente como para cambiar la instanciación a mi subclase ni para interrumpir la instanciación original.
Caso de uso: existe una matriz existente de instancias de clase X. Mi código se carga después. Necesito anular uno de los métodos de una de las instancias X con mi subclase cargada Y extiende X. El programa padre accede a los objetos solo a través de esa matriz, por lo que quiero reemplazar ese elemento de la matriz con mi instancia Y, pero necesita comportarse como si hubiera sido instanciado originalmente en esa matriz. No puedo simplemente encerrar la instancia de superclase y reenviar llamadas, y hay complicaciones difíciles con la reinstalación de la superclase.
Espero que sea más claro.
Por favor, vuelva a formular la pregunta. –
¿Puedes dar también un ejemplo de lo que realmente estás tratando de lograr? En lugar de simplemente su método deseado, pero posiblemente imposible, para hacerlo. – millimoose
Supongamos que la línea existente "public static Foo foo = new Foo();" que no puedo alterar Tengo "clase pública Bar extiende Foo" y quiero hacer "foo = new Bar (...)" tal que era como si la primera línea fuera "public static Foo foo = new Bar()". – JAKJ