2016-07-19 2 views

답변

1

내가 무슨 일이 일어나고 있는지 생각하는 것은 당신이 c1의 인스턴스로 obj1을 만들고 나서 c1보다 상속 체인을 더 멀리 클래스에 던지려고한다는 것입니다.

첫 번째 예에서 c1은 c3의 기본 유형이므로 유형이 c1 인 경우 c3 인스턴스를 만들 수 있습니다. 괜찮습니다. c3는 c1의 자식이므로 모든 속성과 메서드를 상속받습니다.

그러나 두 번째 예에서는 유형 c1의 c1 인스턴스를 작성합니다. 그런 다음 자녀에게 던지려고합니다. 자식 클래스에는 부모에게없는 추가 속성과 메서드가있을 수 있습니다.

요약하면, 하위 유형은 상위 유형일 수 있으며 하위 유형으로 캐스트 될 수 있지만 상위는 하위 일 수 없으며 그렇게 캐스트 될 수 없습니다.

추가 설명이 필요한 경우 알려 주시기 바랍니다.

+0

저에게 많은 도움이되었습니다. 고마워요 :) –

+0

. 도와 드리겠습니다 :) –

+0

@ Literallyluke, '유형'과 '인스턴스'의 차이점도 포함시킬 수 있습니까? 그들은 실제로 무엇을 추측합니까? 예를 들어, c1 obj = new c3(); 여기서 c1은 '유형'이고 c3는 '인스턴스'입니다. –

관련 문제