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

Java 類聲明與訪問控制深度解析:修飾符、繼承規則與包可見性

     編輯:Java 綜合教學

Java 類聲明與訪問控制深度解析:修飾符、繼承規則與包可見性

理解類聲明規則是掌握 Java 封裝與繼承機制的基石。本文系統梳理非訪問修飾符、訪問權限修飾符、抽象類與 final 類的互斥關係,並通過跨包繼承案例揭示默認包私有可見性的陷阱。

一、 非訪問修飾符

修飾符作用關鍵規則
abstract聲明抽象類不可實例化;含抽象方法必須為 abstract;可無抽象方法
final禁止繼承行為不可變,類似數學常量;不可與 abstract 共存
strictfp強制浮點運算遵循 IEEE 754確保跨平台浮點計算結果一致

核心結論:抽象類旨在被繼承,final 類拒絕繼承,二者語義衝突,編譯器禁止同時使用。

二、 訪問權限修飾符

類級別僅支持 public 和 包私有(默認,無修飾符)。內部類可用 private/protected。

  • public:任意類可訪問(需導入)
  • 包私有:同一包下的類可訪問

三、 類訪問的三種形式

  1. 創建實例:new ClassName()
  2. 繼承:class Sub extends Super
  3. 調用成員:訪問方法/字段

四、 實戰陷阱:跨包繼承默認類失敗

// 源文件一:cert 包
package cert;
class Test1 {}  // 默認包私有

// 源文件二:cert2 包
package cert2;
import cert.Test1;  // 編譯錯誤:Test1 不可見
public class Test2 extends Test1 {}

原因:Test1 為包私有,Test2 在不同包中通過 extends 訪問屬於「繼承訪問」,不被允許。解決:將 Test1 改為 public 或置於同一包。

五、 最佳實踐建議

  1. 對外暴露的 API 類使用 public
  2. 內部實現類盡量包私有,降低耦合
  3. 設計供繼承的基類務必加 public
  4. 工具類/常量類加 final 防止被繼承濫用
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved