<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java `extends`與`implements`關鍵字 > 原文: [https://howtodoinjava.com/oops/extends-vs-implements/](https://howtodoinjava.com/oops/extends-vs-implements/) 在 Java 中,`extends`用于擴展類,`implements`用于實現接口。 這是擴展與工具之間的主要**區別**。 ## 1\. `extends`關鍵字 在 Java 中,我們可以通過使用`extend`關鍵字對其進行擴展來繼承類的字段和方法。 請注意,在 Java 中,一個類最多只能擴展一個類。 以[`ArrayList`](https://howtodoinjava.com/java-arraylist/)類為例。 它擴展了`AbstractList`類,又擴展了`AbstractCollection`類。 因此,基本上`ArrayList`類具有其父類`AbstractList`和`AbstractCollection`的方法和行為。 `AbstractCollection`提供了諸如`contains(Object o)`,`toArray()`,`remove(Object o)`等方法。而`AbstractList`類提供了`add()`,`indexOf()`,`lastIndexOf()`,`clear()`等。同樣一些方法被`ArrayList`覆蓋。 ```java public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { //code } ``` #### Java 擴展示例 讓我們從頭開始創建一些東西,以更好地了解使用`extends`關鍵字的 Java 繼承的工作方式。 我創建了兩個類 – `ParentClass`和`ChildClass`,其中`ChildClass`擴展`ParentClass`。 ```java public class ParentClass { public int dataVal = 100; public int getDataVal() { return this.dataVal; } } ``` ```java public class ChildClass extends ParentClass { } ``` 我沒有向`ChildClass`添加任何字段或方法,只是為了表明即使我們不對其添加任何內容,它仍然具有其父類的行為。 ```java public class Main { public static void main(String[] args) { ChildClass child = new ChildClass(); System.out.println( child.dataVal ); System.out.println( child.getDataVal() ); } } ``` 程序輸出。 ```java 100 100 ``` ## 2\. `implements`關鍵字 接口是在 Java 中強制執行契約的方法。 它們強制實現類提供某種行為。 要實現接口,類必須使用**實現關鍵字**。 在 Java 中,我們可以實現多個接口。 在這種情況下,類必須實現所有接口的所有方法。 (或將其聲明為[抽象](https://howtodoinjava.com/java/basics/abstract-keyword/))。 再看一次`ArrayList`類聲明。 它實現了 4 個接口,即`List`,`RandomAccess`,`Cloneable`和[`Serializable`](https://howtodoinjava.com/java/serialization/externalizable-vs-serializable/)。 它已經在給定的接口中實現了所有方法。 #### Java 實現示例 與前面的示例類似,讓我們創建一些基本的知識來了解接口實現的外觀。 我創建了兩個接口`Movable`和`Swimmable`。 兩個接口都定義一種方法。 類`Human`實現兩個接口,因此它必須實現在兩個接口中定義的方法。 ```java public interface Movable { public void move(); } ``` ```java public interface Swimmable { public void swim(); } ``` ```java public class Human implements Movable, Swimmable { @Override public void swim() { System.out.println("I am swimming"); } @Override public void move() { System.out.println("I am moving"); } } ``` 現在,我們將測試`Human`類及其強制行為。 ```java public class Main { public static void main(String[] args) { Human obj = new Human(); obj.move(); obj.swim(); } } ``` 程序輸出: ```java I am moving I am swimming ``` 顯然,`Human`類實現了兩個接口并定義了它們的行為。 這就是 Java 接口的全部目的。 ## 3\. 擴展與實現之間的差異 根據上述示例,讓我們列出 Java 中`extends`和`implements`關鍵字之間的**區別**。 1. `extends`關鍵字用于繼承類; `implements`關鍵字用于繼承接口。 2. 一類只能擴展一個類。 但可以實現任意數量的接口。 3. 擴展超類的子類可能會覆蓋超類中的某些方法。 一個類必須實現接口中的所有方法。 學習愉快!
                  <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>

                              哎呀哎呀视频在线观看