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

Java 核心進階:類型轉換、多態與 Object 根類型全解析

     編輯:Java 綜合教學

強類型語言的類型檢查機制

Java 要求所有變量、引用、參數、返回值 必須聲明類型,編譯器嚴格檢查類型匹配。類型不符直接編譯報錯:

Human aPerson;
aPerson = new Cup(); // 編譯錯誤:found Cup, required Human

基本類型轉換:精度與數據安全的權衡

轉換方向術語是否需強轉數據風險示例
低精度 → 高精度寬化轉換自動無損失int → double
高精度 → 低精度窄化轉換必須強轉 (type)可能截斷/溢出double → int, long → int
int a = 3;
double b = a;          // 自動寬化
int c = (int) 1.23;    // 手動窄化,結果為 1
基本類型轉換圖譜

引用類型轉換:繼承體系中的上下行

向上轉型 —— 多態的基石

  • 定義:子類引用賦值給父類引用(Parent p = new Child();),自動完成,無需強轉。
  • 本質:引用類型變寬,但對象實體不變,JVM 仍能識別對象真實類型。
  • 多態表現:通過父類引用調用被覆寫方法,執行的是子類實現。
class Cup { void drink() { System.out.println("喝水"); } }
class BrokenCup extends Cup { 
    @Override void drink() { System.out.println("漏水了..."); } 
}

Cup cup = new BrokenCup(); // 向上轉型
cup.drink(); // 輸出 "漏水了..." —— 動態綁定,多態生效
向上轉型示意 繼承體系分類學

向下轉型 —— 窄化引用,需謹慎

  • 條件:父類引用實際指向目標子類對象時才可轉型(BrokenCup bc = (BrokenCup) cup;)。
  • 風險:運行時若對象非目標類型,拋 ClassCastException。建議配合 instanceof 守衛。

Object:所有類的共同始祖

  • Java 單繼承體系頂端,隱式繼承 java.lang.Object。
  • 提供通用方法:toString()、equals()、hashCode()、getClass()、clone()、finalize()、wait/notify 等。
  • 可定義操作 Object 的通用邏輯(如通用容器、工具方法),配合向上轉型實現極致復用。
Object 祖先地位

多態實戰:面向抽象編程

  概念關鍵規則典型場景
  基本類型寬化自動,無損失int → long → float → double
  基本類型窄化強轉,可能損失double → int
  引用向上轉型自動,安全方法參數、集合存儲、多態調用
  引用向下轉型強轉,需 instanceof 守衛獲取子類特有方法/屬性
  Object 根類型所有類隱式父類通用工具、容器元素類型
  多態動態綁定,覆寫方法面向抽象編程、策略模式、模板方法

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