Java基礎知識點
多態
在運行時,子類的對象可以轉換爲父類類型,而父類的對象實際上無法轉換爲子類類型
Java編譯器允許在具有直接或間接繼承關係的類之間進行類型轉換,對於向上轉型,Java編譯器會自動進行,對於向下轉型,需要進行強制類型轉換在運行時環境中,通過引用類型變量來訪問所引用對象的方法和屬性時,Java虛擬機採用以下綁定規則:
-
實例方法與引用變量實際引用的對象的方法綁定,這種綁定屬於動態綁定,因爲是在運行時由Java虛擬機動態決定的。
-
靜態方法與引用變量所聲明的類型的方法綁定,這種綁定屬於靜態綁定,因爲實際上是在編譯階段就已經綁定。
-
成員變量(靜態變量,實例變量)與引用變量所聲明的類型的成員變量綁定,這種綁定屬於靜態綁定,因爲實際上是在編譯階段就已經綁定 。
接口
-
接口中的成員變量默認都是public,static,final類型的(都可省略),必須被顯示初始化,即接口中的成員變量爲常量(大寫,單詞之間用"_"分隔)。
-
接口中的方法默認都是public,abstract類型的(都可省略),沒有方法體,不能被實例化。接口中只能包含public,static,final類型的成員變量和public,abstract類型的成員方法。
-
接口中沒有構造方法,不能被實例化。
-
一個接口不能實現(implements)另一個接口,但它可以繼承多個其它的接口。
-
接口必須通過類來實現它的抽象方法。
-
當類實現了某個接口時,它必須實現接口中的所有抽象方法,否則這個類必須聲明爲抽象的。
-
不允許創建接口的實例(實例化),但允許定義接口類型的引用變量,該引用變量引用實現了這個接口的類的實例。
抽象類
-
抽象類是不能直接實例化對象的。
-
抽象類的子類必須重寫父類的抽象方法,才能實例子化,否則子類也是一個抽象類。
-
抽象類可以含有普通數據,普通方法。