本文整理 Java 進階核心知識點,涵蓋抽象類別、介面特性、多態機制、內部類分類、存取修飾符與常用 API 陷阱,適合面試複習與知識查漏補缺。
abstract 不能修飾成員變數;可無抽象方法仍宣告為抽象類別(防止實例化)。abstract 與 static、final、private 互斥(無意義或衝突)。public static final;方法隱含 public,實作類必須 public。javac -d <目標目錄> MyProgram.java // 指定 class 輸出路徑
javac -d . MyProgram.java // 當前目錄生成套件結構
import pkg.* 為通配符導入,編譯器逐一匹配所需類別。
| 修飾符 | 同類 | 同包(子類/無關) | 異包子類 | 異包無關類 |
|---|---|---|---|---|
| private | Y | N | N | N |
| default | Y | Y | N | N |
| protected | Y | Y | Y | N |
| public | Y | Y | Y | Y |
Outer.Inner oi = new Outer().new Inner(); 可直接存取外部類 private 成員。Outer.Inner oi = new Outer.Inner(); 不依賴外部實例。final(Java 8+ 隱含 final),確保生命週期一致。Object,否則為多載非覆寫;底層依賴 ==,通常需自行實作業務邏輯比較。nextInt() 後緊接 nextLine() 會讀取殘留換行符。解決:兩次 Scanner 或全用 nextLine() 再轉型。系統梳理核心語法規則,建立清晰知識骨架,應對開發與面試更從容。