多態
Java中引用變量有兩種類型:
1,編譯時類型 2,運行時類型
編譯時由聲明該變量的類型決定
運行時由賦給該變量的對象決定
當編譯時類型和運行時類型不一致的時候,就會出現多態這個概念。
在Java程序中,引用變量只能調用聲明該變量時所有類中包含的方法
Object p = new person
實例變量p只能調用object類中的方法
(實際上p包含有person類中的方法,通過反射可以執行該方法)
如果需要調用它運行時的方法,就必須將該引用變量強制轉型
注意:
基本類型的轉型只能在數值類型之間進行
引用類型之間的轉換只能在具有繼承關係的類型之間進行
在寫程序的時候,一般結合instanceof 進行判斷是否可以轉換
一般情況下,子類對象賦值給父類是沒有問題的,但把父類對象賦給子類的時候就會出現classcaseexception異常,所以還是應該使用instanceof運算符進行判斷。
if( s2 instanceof String){
String s = (String) s2 ;
}
instanceof運算符
用途: 用於判斷A是否屬於B或B的子類或B的實例,返回布爾值
格式: A instanceof B
A通常是一個引用類型變量 B通常是一個類或者接口
一般和強制類型轉換一同使用,用於判斷一個對象是否可以進行強制類型轉換