나는 컴파일 타임에 클래스를 확장 할 수 있지만 이미 인스턴스화 된 수퍼 클래스의 인스턴스를 사용하여 런타임에이 서브 클래스의 인스턴스를 만들 수 있어야합니다.Java : 런타임시 클래스 확장
슈퍼 클래스 생성자는 이미 서브 클래스 생성자보다 먼저 호출되기 때문에 이론적으로 가능해야합니다.
인스턴스화를 내 서브 클래스로 변경하거나 원래의 인스턴스화를 방해하지 않을 정도로 프로그램에 대한 액세스 권한이 없습니다.
사용 사례 : X 클래스 인스턴스의 기존 배열이 있습니다. 내 코드가 나중에로드됩니다. 인스턴스 X 중 하나의 메서드 중 하나를 재정의해야합니다.로드 된 하위 클래스 Y는 X를 확장합니다. 부모 프로그램은 해당 배열을 통해서만 객체에 액세스하므로 배열 요소를 Y 인스턴스로 대체하려고합니다. 원래 그 배열에 인스턴스화 된 것처럼 작동합니다. 수퍼 클래스 인스턴스를 둘러싸고 호출을 전달할 수는 없으며 수퍼 클래스를 다시 인스턴스화하는 데 어려움이 있습니다.
나는 그것이 더 명확 할 것을 희망한다.
질문을 수정하십시오. –
실제로 달성하려는 것을 보여 줄 수 있습니까? 그렇게하는 대신 원하는,하지만 불가능한 방법 일뿐입니다. – millimoose
기존 라인을 "public static Foo foo = new Foo();"라고 가정하십시오. 나는 바꿀 수 없다. 나는 "Public class Bar extends Foo"를 가지고 있고 첫 번째 라인이 "public static Foo foo = new Bar()"인 것처럼 "foo = new Bar (...)"를하고 싶습니다. – JAKJ