3 回答
已采納

破東風(fēng)一路向北
TA貢獻(xiàn)8條經(jīng)驗(yàn) 獲得超5個贊
對象instanceof類名,用來判斷對象是不是該類的對象,是則返回true,不是返回false。
這個關(guān)鍵字比較常用的地方:
? ? ? ? 對象向下轉(zhuǎn)型。首先,發(fā)生向下轉(zhuǎn)型(子類 ?對象名 = (子類)父類對象)關(guān)系前必須發(fā)生向上轉(zhuǎn)型(父類 ?對象名 = ??new 子類)。在一個父類有很多子類的情況下,如果要發(fā)生向下轉(zhuǎn)型,就不知道要轉(zhuǎn)向哪個子類,這時候就用?????????????????????instanceof關(guān)鍵字來判斷該對象到底是哪個子類的對象,然后再強(qiáng)制轉(zhuǎn)型。見如下代碼:
class?A{ ????public?void?print(){ ????????System.out.println("A...."); ????} } class?B?extends?A{ ?????public?void?print(){ ????????System.out.println("A....B"); ????} ?????public?void?print1(){ ????????System.out.println("B...."); ????} } class?C?extends?A{ ?????public?void?print(){ ???????????System.out.println("A....C"); ????} ?????public?void?print1(){ ????????System.out.println("C...."); ????} } public?Test{ ????public?static?void?main(String[]?args){ ????????A?a1?=?new?B();//發(fā)生向上轉(zhuǎn)型:(父類??對象名?=??new?子類) ????????//向上轉(zhuǎn)型的對象能調(diào)用父類的方法,但實(shí)際調(diào)用的是new后面的子類重寫后的方法,但是不能調(diào)用子類獨(dú)有的方法,比如這里B中的print1()方法,要調(diào)用B中的print1()方法,就要發(fā)生向下轉(zhuǎn)型 ????????a1.print(); ????????//使用instanceof ????????if(a1?instanceof?B){ ????????????B?b1?=?(B)?a1;//向下轉(zhuǎn)型 ????????????b1.print1();//調(diào)用B中的print1 ????????} ??????????if(a1?instanceof?C){ ????????????C?c1?=?(B)?a1;//向下轉(zhuǎn)型 ????????????c1.print1();//調(diào)用C中的print1 ????????} ????} } 運(yùn)行結(jié)果是: A....B B....

Tobey_滔
TA貢獻(xiàn)242條經(jīng)驗(yàn) 獲得超128個贊
boolean bool = object instanceof class;
object是你的對象
class是類
添加回答
舉報
0/150
提交
取消