關鍵字instanceof 是用來判斷前後對象是否有關係:
instanceof 常用來檢測強制類型轉換的對象是否兼容,多用於if判斷,當了II型那個不兼容時候回拋出異常
檢驗過程:
這分爲兩中類型:編譯時 和 運行時
instanceof使用格式:(要轉換類型=父類類型,轉換至類型=子類類型)
if(要轉換類型的變量 instanceof 轉換至的類型 ){
//類型兼容時轉換操作
}else{
//類型不兼容時操作
}
判斷要求:變量的編譯時類型 是 轉換至類型的父類
編譯時驗證:
編譯時類型 和 要轉換至類型 是否兼容
----->兼容時通過,不兼容時報錯,失敗
運行時驗證:
運行時類型 和 要轉換至類型 是否兼容
----->兼容時通過返回true,不兼容時返回false
【編譯時 和 運行時 的區別】==多態的體現
編譯時 編譯的是等號左邊的類型(父類類型)
運行時 運行的是等號右邊的類型(一般是子類)
【多態是針對對象的方法的,對象的屬性不具備多態】
在多態中的方法的特點:
編譯的時候 查看的是父類中是否有該方法
運行的時候 調用的是子類中的方法