自動轉型VS強制轉型

2021-09-01 10:39:16 字數 825 閱讀 6186

[size=large][align=center]自動轉型vs強制轉型[/align][/size]

一、 為什麼要轉型?

物件與物件之間的資料不匹配;因此需要轉型。

二、 什麼時候是自動轉型?什麼時候需要強制轉型?

最直接的答案就是不能自動轉型,那我們就強制轉型。最終的目的就是把乙個物件賦給另乙個物件。

然而我們還是可以分析一下,就可以得出更具體的答案。

舉個生活中的例子:

父親和兒子——我們常常聽人家說,某某家的兒子長得很像他爸爸。

父親 = (自動轉型)兒子;

——是否聽過,某某家的爸爸長得很像他兒子。

兒子 = (不能自動轉型)父親;

那麼,我們可以看出,父親一定是可以包含兒子內的所有屬性,而兒子是不能包含父親內的所有屬性。如果有人硬要說「某某家的爸爸長得很像他兒子。」這樣不符合邏輯的話,就只能強制這麼說了。

兒子 = (強制轉型)父親;

相信通過這個例子你就能明白自動轉型和強制轉型的實質是什麼了。

三、 例項分析

package textrewrite;

/*** 主程式類

* @author sean 2012 - 8

*/public class master

}

通過上例可以看出,因為student1是父類,而student3是子類;父類是不能直接賦值給子類的, 除非強制轉型(collegestudent)student1。而其它賦值語句都可以自動轉型。

另外,當我們使用其它基本型別時都可以通過強制轉型的方法來賦值,但並非所有的強制轉型賦值都是有意義的。

多型之向下轉型(強制轉型)

多型的一種表現,子類引用指向父類物件,稱為向下轉型。向下轉型是強制轉換,因為子類可能有自定義的屬性和方法,所以父類物件向子類型別轉換的時候,需要借助外力,即強制轉換。我們在向上轉型的時候,舉了乙個印表機的例子,因為是同一臺印表機,只是列印的條件不同,呼叫的都是列印方法。但是我們生活中還有別的,條件不...

物件轉型(向上轉型和向下轉型)

物件轉型分為兩種 一種叫向上轉型 父類物件的引用或者叫基類物件的引用指向子類物件,這就是向上轉型 另一種叫向下轉型。轉型的意思是 如把float型別轉成int型別,把double型別轉成float型別,把long型別轉成int型別,這些都叫轉型。把一種形式轉成另外一種形式就叫轉型。除了基礎資料型別的...

向下轉型,向上轉型

package cn.dali.code24 向上轉型 父類引用指向子類物件 格式 父類名稱 物件名 new 子類名稱 向下轉型 當我們使用父類引用指向子類物件的時候,我們想把父類物件轉為子類物件時,需要向下轉型 向下轉型就是乙個還原動作。格式 子類名稱 物件名 子類名稱 父類物件 注意 乙個父類有...