2016-10-01 4 views
0

이상하게 들리 겠지만 이미 인스턴스화 된 기본 클래스에서 상속받은 하위 클래스를 만들 수 있습니까? 나는 DI를 사용할 수 있지만 궁금해하는 IM을 알고 있습니다.인스턴스화 된 기본 클래스에서 자식 클래스를 만드시겠습니까?

편집 : 저는 이것이 javascript와 같은 프로토 타입 기반 언어의 기능이라는 것을 알고 있습니다. 어느 쪽이든,이 같은 것이 가능한지 고려해 볼 가치가 있는지 궁금해합니다.

Parent x = new Parent(1900); 
// How to make a child of this particular base? 
// x child = new Child(); 

답변

1

방법이 특정 기준의 아이를 만들기 위해 : 그럼 나는 같은 것을 할 것입니다 내 주에

public class Parent { 
    protected id; 

    public Base(int id) { 
    this.id = id; 
    } 
} 

public class Child extends Parent { 
    public void getID() { 
    return id; 
    } 
} 

:

는 다음과 내가 가진 가정 수 있습니다?

수 없습니다. Parent는 복사 생성자를 구현하고 Child 당신이 만들 수있는 것이다, 생성자에서 그것을 사용하는 경우 당신이 올 수있는 가장 가까운입니다 복사 Child것을 특정 부모의 상태 ... 정말 아니다

... 그것들은 모두 닫힙니다. 당신이 말하는 것처럼, 당신이 찾고있는 것은 자바가 가지고 있지 않은 프로토 타입 상속이다.

+0

그래서 제가 할 수있는 최선의 방법은 의존성 주입입니까? – Asperger

+0

@Asperger : 글쎄, DI가 어떻게 당신이 특정 인스턴스 기반의 자식을 만드는 데 도움을 주는지 보지는 않습니다. 'Child '가'Parent'의 * 래퍼 *라면 DI가 어떻게 도움이되는지 볼 수 있습니다. (Disclosure : 당신이 DI보다 더 많이 알고있을 가능성이 있습니다.) - –

+0

사실 내가 생각하고 있던 모든 것은 새로운 아이의 부모를 지나가는 시스템과 같습니다. 그래서 새 아이가 만들어 질 때마다 나는 전달 된 객체에 접근 할 수 있습니다. 오, 그 자식은 공개되지 않는 한, 못생긴 ... 들판 용 getter를로드합니다. – Asperger

관련 문제