<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## Java專題零:類的繼承 [TOC] ### 0.1. final不能繼承 - 使用`final`修飾的類不能被繼承 - 使用`final`修飾的方法不能被重寫 ### 0.2. 重寫方法的訪問修飾符 > 子類的重寫方法修飾符必須比大于或等于父類的方法 方法的訪問修飾符: - `public`:公開的,所有類都可以訪問 - `protected`:保護的,本類和子類才可以訪問 - `package-default`:包私有的,本類和相同包的類才可以訪問 - `private`:私有的,本類才可以訪問 訪問權限大小: `public` > `protected` > ` package-default `> `private` 如: FatherClass類中`packageMethod`方法訪問修飾符是`package-default`,SonClass類中重寫的`packageMethod`方法訪問修飾符必須大于或等于`package-default`,可以是`public`、`protected`、` package-default `,但不可以是`private`,否則編譯時會報語法錯誤 ~~~ public class FatherClass { void packageMethod(){ } } ~~~ ~~~ public class SonClass extends FatherClass{ public void packageMethod(){ } } ~~~ ### 0.3. 重寫方法的異常拋出 > 子類的重寫方法拋出的異常是父類拋出的異常或異常的子類 如: FatherClass類中`exceptionMethod`方法拋出的異常是`FileNotFoundException`,SonClass類中重寫的`packageMethod`方法拋出的異常只能是`FileNotFoundException`或`FileNotFoundException`的子類,下面的`IOException`,編譯時會報被重寫的父類方法沒有拋出`IOException` ~~~ public class FatherClass { public void exceptionMethod() throws FileNotFoundException { } } ~~~ ~~~ public class SonClass extends FatherClass{ public void exceptionMethod() throws IOException { } } ~~~ ### 0.4. 子類對象創建的順序 ***創建順序如下***: 1. 父類靜態成員(包括方法和變量,按順序初始化) 2. 子類靜態成員(包括方法和變量,按順序初始化) 3. 父類成員變量(包括非靜態代碼塊) 4. 父類構造方法 5. 子類成員變量(包括非靜態代碼塊) 6. 子類構造方法 ***驗證代碼***: ```java // 主類,用來創建子類對象,驗證我們的結果 public class Main { public static void main(String[] args) { new Son(); } } // 書類,用于測試對象成員變量 class Book{ public Book(String user){ System.out.println(user + "成員變量"); } } // 子類 class Son extends Fa{ static Book book= new Book("子類靜態"); static{ System.out.println("子類靜態代碼塊"); } Book sBook = new Book("子類"); { System.out.println("子類非靜態代碼塊"); } public Son(){ System.out.println("子類構造方法"); } } // 父類 class Fa{ static Book book= new Book("父類靜態"); static{ System.out.println("父類靜態代碼塊"); } Book fBook = new Book("父類"); { System.out.println("父類非靜態代碼塊"); } public Fa(){ System.out.println("父類構造方法"); } } ``` ***輸出結果***: > 父類靜態成員變量 父類靜態代碼塊 子類靜態成員變量 子類靜態代碼塊 父類成員變量 父類非靜態代碼塊 父類構造方法 子類成員變量 子類非靜態代碼塊 子類構造方法
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看