2011-05-14 4 views
1

기본 클래스 BaseClass뿐만 아니라 에서 파생 된 자식 클래스 ChildClassA이 있다고 가정하십시오.형식 선언의 암시 적 변환? 힙에 저장되는 오브젝트 유형은 무엇입니까?

이렇게하면 어떻게됩니까?

BaseClass b = new ChildClassA;

는 내가 무슨 일이 일어나고 상상하는 것은입니다 :

    ChildClassA 작성하고 ChildClassA 유형으로 힙 에 저장됩니다
  1. !
  2. 변수 b은 ChildClassA에 대한 참조를 할당됩니다
  3. 가 BaseClass로
  4. 에 ChildClassA에서 암시 적 변환은 그러나 객체는 여전히 ChildClassA

이유 I로 힙에 저장됩니다 물어 보면 객체가 선언되어 힙에 저장되면 언제나 그것이 무엇인지 알 수 있습니다. 전환은 단지 으로 CLR에을 처리하는 것과 다르지만 실제로는 항상 원래 유형이며 으로 여전히 원래 유형입니다.

맞습니까? 여기에 누락 된 것이 있습니까?

답변

2

귀하의 이해를 기다리고 있습니다.

bChildClassA 인스턴스를 나타냅니다. 후자는 이전과 같이 힙에 남아 있으며 BaseClass b에 인스턴스를 할당 한 결과 새로운 개체가 다시 채워지지 않습니다.

2

Jove 님이 작성하셨습니다.

은 A 변환 그냥, 그것은 다른 유형처럼

이 실제로 더 해석처럼 변환이 아니다 치료에 CLR을 알려줍니다.

+0

스페인의 비 ... –