物件的轉型

2021-10-08 16:01:20 字數 950 閱讀 5205

父類引用指向子類物件,我們稱這個過程為向上轉型,屬於自動型別轉換。

object obj =

newstring

("小小吳");

// 向上可以自動轉型

// obj.charat(0) 無法呼叫。編譯器認為obj是object型別而不是string型別

/* 編寫程式時,如果想呼叫執行時型別的方法,只能進行強制型別轉換。

* 不然通不過編譯器的檢查。

*/string str =

(string) obj;

// 向下轉型

system.out.

println

(str.

charat(0

));// 位於0索引位置的字元

system.out.

println

(obj == str)

;// true.他們倆執行時是同乙個物件

}}

向上轉型後的父類引用變數只能呼叫它編譯型別的方法,不能呼叫它執行時型別的方法。但是即使呼叫編譯型別的方法,我們只能通過編譯,而不能真正的使用 。我們要想使用執行時方法就必須進行型別的強制轉換,我們稱之為向下轉型!

在向下轉型過程中,必須將引用變數轉成真實的執行時型別否則會出現型別轉換異常classcastexception

public

class

testcasting2

}

為了避免出現這種異常,我們可以使用instanceof運算子進行判斷

如下面例子所示

public

class

testcasting3

else

if(obj instanceof

stringbuffer)}

}

物件的轉型

1.向上轉型 什麼是向上轉型?向上轉型 將子類的物件賦值給父類的引用 乙個引用能夠呼叫哪些成員 變數和函式 取決於這個引用的型別是怎麼定義的 乙個引用呼叫的是哪乙個方法,取決於這個引用所指向的物件 向上轉型只要兩個類是繼承關係就一定會成功 2.向下轉型 什麼是向下轉型?向下轉型 將父類的物件賦值給子...

物件的上轉型物件

假設animal類是tiger類的父類,當用子類建立乙個物件,並把這個物件的引用放到父類的物件中時,比如 animal a a new tiger 或 animal a tiger b new tiger a b 這時,稱物件a是物件b的上轉型物件 好比說 老虎是動物 物件的上轉型物件的實體是子類負...

物件導向 物件的轉型

為什麼需要強制轉換型別?引用變數只能呼叫它編譯型別的方法,不能呼叫它執行型別的方法,所以就需要型別的強制轉換。1 乙個父類的引用型別變數可以指向其子類的物件 2 乙個父類的引用不可以訪問其子類物件的新增加的成員 屬性和方法 3 可以使用引用變數instanceof 類名 來判斷引用變數所指向的物件是...