- java 中雖然是單繼承,但是繼承具有傳遞性。
比如:A派生出B,B派生出C,那下面這三行都可以編譯運行:
A a0 = new A();
A a1 = new B();
A a2 = new C();
-
System.out.println() 中,System是java.lang包下的一個類,out爲該類下的final靜態成員(PrintStream)類型,println()是PrintStream類的實例方法。
-
java中方法的重寫的兩同兩小一大原則
方法名相同 &參數類型相同
子類方法返回類型 父類方法返回類型 & 子類方法拋出異常 父類方法拋出異常
子類訪問權限 父類方法訪問權限 -
編譯將.java文件編譯成字節碼文件,在執行是,會將字節碼文件解釋爲機器語言
-
訪問權限從大到小 :public > protected > 包訪問權限(默認權限) > private
-
多態
使用父類類型的引用指向子類的對象
該引用只能調用父類中定義的方法和變量
如果子類中重寫了父類的一個方法,那麼在調用這個方法的時候,將會調用子類的方法(動態連接,動態調用)
變量不能被重寫/覆蓋,重寫的概念只針對方法,如果在子類中重寫了父類中的變量那麼編譯時會報錯
多態的三個必要條件:繼承 & 重寫 & 父類引用指向子類的對象
多態的綁定機制:
實例方法和引用變量所引用的對象的方法綁定;
靜態方法與引用變量所聲明的方法綁定;
成員變量(實例變量,靜態變量)與引用對象所聲明的類型的成員變量綁定。 -
Java類方法和實例方法
類方法是用static修飾的方法。
類方法屬於整個類,所以類方法的方法體中不能有與類的對象有關的內容(不能引用對象變量 & 不能調用類的對象方法(實例方法) & 不能使用super,this關鍵字 & 不能被覆蓋)。
System.out.println("1" + 2 + 3); // 123
System.out.println(1 + "2" + 3); // 123
System.out.println(1 + 2 + "3"); // 33
從左到右執行運算