private/default/protected/public 四級訪問權限實現。extends、super。[public] [abstract|final] class ClassName [extends Super] [implements Interfaces] {
// 成員變量
[public|protected|private] [static] [final] [transient] [volatile] type varName;
// 成員方法
[public|protected|private] [static] [final|abstract] [native] [synchronized]
returnType methodName([params]) [throws exceptions] { ... }
}
static:類成員,屬於類不屬於實例,可直接用類名訪問。final:修飾類(不可繼承)、方法(不可重寫)、變量(常量)。abstract:抽象類/方法,強制子類實現。transient:序列化時忽略。volatile:多線程可見性。native:調用非 Java 代碼。synchronized:線程同步。| 特性 | 重載 | 重寫 |
|---|---|---|
| 參數列表 | 必須不同 | 必須相同 |
| 返回類型 | 可不同 | 必須相同/兼容 |
| 權限 | 無要求 | 不能更嚴格 |
| 發生階段 | 編譯期 | 運行期 |
new 調用。this(...) 調用本類其他構造器,必須在首行。System.gc() 建議回收。finalize() 不可靠,資源釋放應顯式調用 close()。import 僅為便捷,不影響字節碼大小。靜態導入 import static 可直接用靜態成員。interface,僅含常量與抽象方法,支持多實現,實現類方法必須 public。abstract class,可含實例變量與具體方法,單繼承。Collection vs AbstractCollection)。ClassCastException,除非對象實為子類實例。推薦閱讀:Java 面向對象深度解析