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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java 中的方法重載與方法覆蓋 > 原文: [https://javatutorial.net/method-overloading-vs-method-overriding-in-java](https://javatutorial.net/method-overloading-vs-method-overriding-in-java) 本文通過示例演示了 Java 中方法重載和方法覆蓋之間的區別 **方法重載**和**方法覆蓋**都是在各種 Java 實現中高度使用的 OOP(面向對象編程)概念。 在本文中,我們已經寫了關于 OOP 的 4 個主要概念的文章。 如果您不熟悉 OOP,請先查看[此文章](https://javatutorial.net/java-oop)。 方法重載與方法重載是一個常見的 Java 工作面試問題。 去面試,我們不能不知道有什么區別。 ## 什么是方法重載? 如下面的示例所示,方法重載使我們能夠使用**相同名稱,相同或不同返回類型**的多個方法。 方法重載的重要之處在于,對于同一個返回類型,所有這些方法必須具有**不同的參數**。 通常的做法是保留參數最多的方法的實現,而其他方法(參數較少的)僅重定向到較多方法,為缺少的參數提供默認值,如下所示: ```java public int calculate(int data[]) { return calculate("Default calculation", data, 0); } public int calculate(String name, int data[]) { return calculate(name, data, 0); } public int calculate(String name, int data[], int offset) { // do all the calculations here } ``` ## 什么是方法覆蓋? 方法覆蓋是 [Java 繼承](https://javatutorial.net/java-inheritance-example) OOP 原理的一部分。 方法覆蓋的思想是在子類中更改給定方法的實現。 換句話說,您使用方法的相同簽名(名稱,返回類型,參數)“替代”了父類方法的實現,但是在覆蓋方法內部實現了不同的功能。 ![Method overriding in Java](https://img.kancloud.cn/6e/6b/6e6ba22f2912d4b32e95f241bfc1d58f_356x417.jpg) Java 中的方法覆蓋 ## Java 中的方法重載示例 下面的示例演示方法重載的用法。 我們有 4 個名稱相同,參數和返回類型不同的方法 ```java package net.javatutorial; public class OverloadingExample { static int sumOf(int a, int b) { return a+b; } static int sumOf(int a, int b, int c) { return a+b+c; } static double sumOf(double a, double b) { return a+b; } static double sumOf(double a, double b, double c) { return a+b+c; } public static void main(String[] args) { System.out.println(sumOf(1,2)); System.out.println(sumOf(10d,20d,30d)); } } ``` 該程序的輸出為: ```java 3 60.0 ``` 如您在上面的示例中看到的,基于我們使用的參數調用了另一種方法。 這是增加程序可讀性的好方法。 ## Java 中的方法覆蓋示例 動物超類 ```java package net.javatutorial; public class Animal { public void makeSound() { System.out.println("the animal makes sounds"); } } ``` 狗子類具有相同的方法,但行為不同 ```java package net.javatutorial; public class Dog extends Animal{ @Override public void makeSound() { System.out.println("the dog barks"); } } ``` 請注意`@Override`注解的用法。 這不是強制性的,但是最好對被覆蓋的方法進行注解,以提高代碼的可讀性。
                  <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>

                              哎呀哎呀视频在线观看