예제 1
상위 클래스를 강제로 하위 클래스로 변환
Father f = new Father(); Son s = (Father)f;//出错 ClassCastException
분석:
상위 클래스의 인스턴스를 만들고 상위 클래스 객체를 강제로 하위 클래스로 변환하고 싶습니다. 안 됩니다! 평신도의 관점에서 보면 진짜 아버지는 결코 아들인 척 할 수 없습니다.
온라인 학습 동영상 튜토리얼 공유: java 온라인 튜토리얼
예 2
"가짜" 상위 클래스를 하위 클래스로 강제
Father f = new Son(); Son s = (Son)f;//可以
분석:
상위 클래스 개체는 하위 클래스 인스턴스를 참조합니다.
Father 클래스에는 Son 클래스(서브클래스)의 고유한 속성이 없기 때문에 Son 클래스 고유의 속성은 당분간 f를 통해 운용할 수 없습니다.
그런 다음 상위 클래스 객체 f에서 강제로 변환된 객체를 참조하는 하위 클래스 객체 s를 만듭니다(실제로는 강제로 Son으로 다시 변환되는 척하는 Son입니다). 서브클래스 고유 속성을 작동합니다.
평신도의 관점에서 볼 때, 아들은 여전히 아버지인 척하고 있으며, 그의 본질은 여전히 변하지 않았습니다.
예제 3
하위 클래스를 상위 클래스로 강제 변환
Son s = new Son(); Father f = (Father)s;//可以
분석:
하위 클래스는 상위 클래스로 변환되지만 하위 클래스 객체의 고유 속성은 f로 연산할 수 없으며 f는 고유하지 않은 속성을 연산할 수 있습니다( 상위 클래스) 상속된 속성).
평신도의 관점에서 보면, 아들과 아버지의 공통점은 '둘 다 인간이다'라는 것입니다. 아들은 인간이고 아버지로부터 그것을 물려받았지만, 아들은 결코 인간의 행동을 물려받을 수 없습니다. 그의 아버지(하위 범주 유형)와 동일한 세대가 상위 클래스 유형으로 변환됨)
추천 관련 기사 및 튜토리얼: 빠른 시작 Java
위 내용은 Java에서 상위 클래스와 하위 클래스 간의 변환 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!