하위 클래스를 포함하는 특정 유형의 오브젝트 배열을 정의하는 방법을 알아 내려고합니다. 이것은 내가 가진 것입니다 :오브젝트 배열과 Java 서브 클래스
Property[] list = new Property[100];
나는 이것이 100 개의 속성 배열을 정의 할 것이라고 생각하지만,이 배열에도 SubProperty를 포함시킬 수 있습니다. SupProperty는 Property 클래스의 확장입니다.
대단히 감사합니다.
하위 클래스를 포함하는 특정 유형의 오브젝트 배열을 정의하는 방법을 알아 내려고합니다. 이것은 내가 가진 것입니다 :오브젝트 배열과 Java 서브 클래스
Property[] list = new Property[100];
나는 이것이 100 개의 속성 배열을 정의 할 것이라고 생각하지만,이 배열에도 SubProperty를 포함시킬 수 있습니다. SupProperty는 Property 클래스의 확장입니다.
대단히 감사합니다.
예 배열에 SubProperty
도 포함 할 수 있습니다. 찾아주세요 아래 코드 - 수퍼 클래스를 사용할 수 있습니다 어디든지 당신은 서브 클래스를 사용할 수 있습니다
for(Properties prop: obj){
if(prop instanceof SubProperty){
SubProperty subProp = (SubProperty)prop;
System.out.println(subProp);
}
}
캐스팅하기 전에 유형을 확인하기 위해 +1 – moeTi
+1 완전한 대답. –
예, 그렇습니다. SubProperty
오브젝트 은 a Property
오브젝트입니다. 하위 클래스는 언제나 부모 클래스와 바꿀 수 있습니다. 당신이
Animal[] list = new Animal[100]
당신이
Dog
이 동물을 경우, 당신은 당신이 원하는 경우 상속, 무엇 있다는
Animal dog = new Dog();
을 할 수있을 것입니다?, 그 배열에
Dog
를 추가 할 수 있을까하는 경우
그것에 대해 더 알고 싶습니다. here
-
class SubProperty extends Properties{
}
및
Properties[] obj = new Properties[100];
obj[1] = new SubProperty();
당신이 같은 개체를 다시 얻을 수 있습니다. 이것은 OOP 대체 원칙입니다. 이 상황에서도 적용됩니다.
어떤 종류의 하위 속성 – stinepike
'SubProperty'도 포함 할 수 있지만 검색하는 동안 하위 속성 (subProperty) 목록 [10]'으로 캐스팅해야합니다. 'list [10]'은'Property'가 아닌'SubProperty'의 인스턴스입니다. –
당신은 어떤 문제에 직면하고 있습니까? –