2014-03-30 2 views
1

저는 Java로 프로젝트를 작성하고 있습니다. 클래스 A를 확장하는 객체 A, B 및 C의 인스턴스가있는 구조가 있습니다.하위 인스턴스의 부모에게 의뢰하는 방법

부모 유형의 모든 개체 목록을 원합니다. 즉, A, B 또는 C 유형의 개체를이 목록에 저장하고 싶습니다.

나는 내 원래의 아이디어는 다음과 같이 뭔가를했다 기능

private class Item 
{ 
    private Parent parent; 

    public void addItem(Parent set){ /* adds set to the list */}; 
} 

으로 목록 클래스를 만들었습니다

A a = new A(); B b = new B(); 
addItem(a); 
addItem(b); 

그러나 A와 B가 A와 B에있는 부모 수 없습니다.

부모님 목록에 As, Bs, Cs ...의 인스턴스를 추가 할 수있는 방법을 제안 해 줄 수 있습니까?

+2

당신은 귀하의 게시물을 바꿔해야합니다. 그것의 전반은 후반을 모순된다. –

+1

A, B 및 C는 Parent를 확장한다고 말하면 상속 트리에서 A, B 및 C가 모두 부모의 하위 클래스라는 의미입니다. 따라서 처음에 말한 것이 사실이라면 addItem (a); 코드가 작동합니다. –

답변

0

저는 부모 슈퍼 타입으로 어떻게 a, b, c를 다형 화합니까? 부모 유형을 하위 유형으로 지정 했으므로 정의한대로 add 메소드는 하위 유형을 부모로 내재적으로 변환해야합니다. 명시 적으로 하위 유형의 부모 유형을 참조하십시오 그렇지 않으면 어떻게

는 타입 캐스트 표현 ... 다음과 같이 표현된다 사용하는 것입니다 :

T_Parent varname = (T_Parent) Name_Subclass; 
관련 문제