2013-05-31 2 views
0

하위 클래스를 포함하는 특정 유형의 오브젝트 배열을 정의하는 방법을 알아 내려고합니다. 이것은 내가 가진 것입니다 :오브젝트 배열과 Java 서브 클래스

Property[] list = new Property[100]; 

나는 이것이 100 개의 속성 배열을 정의 할 것이라고 생각하지만,이 배열에도 SubProperty를 포함시킬 수 있습니다. SupProperty는 Property 클래스의 확장입니다.

대단히 감사합니다.

+0

어떤 종류의 하위 속성 – stinepike

+1

'SubProperty'도 포함 할 수 있지만 검색하는 동안 하위 속성 (subProperty) 목록 [10]'으로 캐스팅해야합니다. 'list [10]'은'Property'가 아닌'SubProperty'의 인스턴스입니다. –

+0

당신은 어떤 문제에 직면하고 있습니까? –

답변

2

예 배열에 SubProperty도 포함 할 수 있습니다. 찾아주세요 아래 코드 - 수퍼 클래스를 사용할 수 있습니다 어디든지 당신은 서브 클래스를 사용할 수 있습니다

for(Properties prop: obj){ 
    if(prop instanceof SubProperty){ 
     SubProperty subProp = (SubProperty)prop; 
     System.out.println(subProp); 
    } 
} 
+1

캐스팅하기 전에 유형을 확인하기 위해 +1 – moeTi

+0

+1 완전한 대답. –

0

예, 그렇습니다. SubProperty 오브젝트 a Property 오브젝트입니다. 하위 클래스는 언제나 부모 클래스와 바꿀 수 있습니다. 당신이

Animal[] list = new Animal[100] 

당신이 Dog이 동물을 경우, 당신은 당신이 원하는 경우 상속, 무엇 있다는 Animal dog = new Dog();을 할 수있을 것입니다?, 그 배열에 Dog를 추가 할 수 있을까하는 경우

1

그것에 대해 더 알고 싶습니다. here

0

-

class SubProperty extends Properties{ 
} 

Properties[] obj = new Properties[100]; 
obj[1] = new SubProperty(); 

당신이 같은 개체를 다시 얻을 수 있습니다. 이것은 OOP 대체 원칙입니다. 이 상황에서도 적용됩니다.

관련 문제