>  기사  >  Java  >  Java에서 상위 클래스와 하위 클래스 간의 변환 문제

Java에서 상위 클래스와 하위 클래스 간의 변환 문제

王林
王林앞으로
2019-12-17 11:55:543741검색

Java에서 상위 클래스와 하위 클래스 간의 변환 문제

예제 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제