다음 문장에 따라배열 크기가 java와 관련이 없습니까?
나는 배열하위 클래스 배열은 수퍼 클래스 배열에 할당 될 수 있습니다. 구현 클래스의 배열은 인터페이스 유형의 배열에 할당 될 수 있습니다. 크기는 부적합합니다. 내가 객체
[null,null,null,null,null,null]
이 유형class [LC
이 객체에c
점으로 작성되는,new C[6];
말할 때
interface I{}
class C implements I{}
/* dummy.java*/
public class dummy{
public static void main(String[] args){
C[] c = new C[6];
I[] i = new I[2];
c[0] = new C();
c[1] = new C();
c[2] = new C();
c[3] = new C();
c[4] = new C();
c[5] = new C();
i = c;
System.out.println(i[5].getClass());
}
}
의 크기의 동작을 확인하기 위해 샘플 코드 아래 썼다. 내가 말할 때, new I[2];
, [null,null]
객체는 class [LI
유형으로 생성되고 i
은이 객체를 가리킨다.
내 질문 : 내가 i[5]
을 말할 때
방법 인터페이스 배열 객체 [null, null]
에도 불구하고, 여기 노력이 new I[2]
을 정의한 후 생성되는? 내가 정확하게 i = c;
라고 할 때 무슨 일이 일어나고있는 것입니까? 인터페이스 배열 배열의 크기가 할당 중에 변경되는 new I[2];
입니까 i = c;
?
당신이 말할 때 'I = C를,'새'의 원래 배열 I [2] '가 폐기되고있다. – rwong