首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 面向對象特性總結:封裝、繼承、多態與核心語法

     編輯:Java 綜合教學

Java 面向對象特性總結

基本概念

  • 對象:客觀事物實體,由屬性與服務封裝而成。
  • 類:具相同屬性/服務的對象集合,提供統一抽象描述。
  • 消息:向對象發出的服務請求,包含對象標識、服務標識、輸入/回答信息。

三大特征

  1. 封裝性:屬性與服務結合,隱藏內部細節,僅暴露有限接口。Java 通過 private/default/protected/public 四級訪問權限實現。
  2. 繼承性:子類擁有父類非私有成員,支持單繼承,不支持多重繼承。關鍵字 extends、super。
  3. 多態性:靜態多態(方法重載,編譯時確定)與動態多態(方法重寫,運行時根據實例類型調用)。重寫遵循:權限不嚴於父類、拋出異常不多於父類。

核心語法詳解

類聲明與類體

[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:線程同步。

方法重載 vs 重寫

特性重載重寫
參數列表必須不同必須相同
返回類型可不同必須相同/兼容
權限無要求不能更嚴格
發生階段編譯期運行期

構造器

  • 與類同名,無返回類型,new 調用。
  • 支持重載;若無顯式構造器,編譯器生成無參構造器;若有帶參構造器,無參不會自動生成。
  • 可用 this(...) 調用本類其他構造器,必須在首行。

對象創建與銷毀

  • 對象存儲於堆,變量持有引用。
  • 無引用時成為垃圾,GC 自動回收。可手動 System.gc() 建議回收。
  • 無析構器,finalize() 不可靠,資源釋放應顯式調用 close()。

包與導入

  • 包確保類名唯一,建議用反轉域名作前綴。
  • import 僅為便捷,不影響字節碼大小。靜態導入 import static 可直接用靜態成員。

接口與抽象類

  • 接口:interface,僅含常量與抽象方法,支持多實現,實現類方法必須 public。
  • 抽象類:abstract class,可含實例變量與具體方法,單繼承。
  • 常見模式:接口定義能力,抽象類提供默認實現(如 Collection vs AbstractCollection)。

內部類

  • 成員內部類、局部內部類、匿名內部類。
  • 可訪問外部類成員(含私有),外部需完整名稱訪問。
  • 優點:減少類文件;缺點:結構不清晰。

類型轉換陷阱

  • 子類 → 父類:安全(向上造型)。
  • 父類 → 子類:編譯通過但運行拋 ClassCastException,除非對象實為子類實例。
  • 同父類的兄弟類不可互轉(如 Panel 和 Frame 雖同繼承 Container 但不可互轉)。

推薦閱讀:Java 面向對象深度解析

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved