<dd id="3pk9i"><optgroup id="3pk9i"><video id="3pk9i"></video></optgroup></dd>
<rp id="3pk9i"></rp>

<dd id="3pk9i"><track id="3pk9i"></track></dd>
      1. <th id="3pk9i"></th>
        1. <ol id="3pk9i"><ruby id="3pk9i"></ruby></ol>

        2. java重載與重寫的區別是什么-世界微頭條

          來源:php中文網 | 2023-01-06 13:59:55 |

          本教程操作環境:windows7系統、java8版、DELL G3電腦。


          【資料圖】

          重寫(Override)

          從字面上看,重寫就是 重新寫一遍的意思。其實就是在子類中把父類本身有的方法重新寫一遍。子類繼承了父類原有的方法,但有時子類并不想原封不動的繼承父類中的某個方法,所以在方法名,參數列表,返回類型(除過子類中方法的返回值是父類中方法返回值的子類時)都相同的情況下,對方法體進行修改或重寫,這就是重寫。但要注意子類函數的訪問修飾權限不能少于父類的。例如:

          public class Father {    public static void main(String[] args) {        // TODO Auto-generated method stub        Son s = new Son();        s.sayHello();    }    public void sayHello() {        System.out.println("Hello");    }}class Son extends Father{    @Override    public void sayHello() {        // TODO Auto-generated method stub        System.out.println("hello by ");    }}

          重寫 總結:

          1.發生在父類與子類之間 2.方法名,參數列表,返回類型(除過子類中方法的返回類型是父類中返回類型的子類)必須相同 3.訪問修飾符的限制一定要大于被重寫方法的訪問修飾符(public>protected>default>private) 4.重寫方法一定不能拋出新的檢查異?;蛘弑缺恢貙懛椒ㄉ昝鞲訉挿旱臋z查型異常

          重載(Overload)

          在一個類中,同名的方法如果有不同的參數列表(參數類型不同、參數個數不同甚至是參數順序不同)則視為重載。同時,重載對返回類型沒有要求,可以相同也可以不同,但不能通過返回類型是否相同來判斷重載。

          例如:

          public class Father {    public static void main(String[] args) {        // TODO Auto-generated method stub        Father s = new Father();        s.sayHello();        s.sayHello("wintershii");    }    public void sayHello() {        System.out.println("Hello");    }    public void sayHello(String name) {        System.out.println("Hello" + " " + name);    }}

          重載 總結:

          1.重載Overload是一個類中多態性的一種表現 2.重載要求同名方法的參數列表不同(參數類型,參數個數甚至是參數順序) 3.重載的時候,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數的區分標準

          面試時,問:重載(Overload)和重寫(Override)的區別?

          答:方法的重載和重寫都是實現多態的方式,區別在于前者實現的是編譯時的多態性,而后者實現的是運行時的多態性。

          重載發生在一個類中,同名的方法如果有不同的參數列表(參數類型不同、參數個數不同或者二者都不同)則視為重載;重寫發生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的參數列表,有兼容的返回類型,比父類被重寫方法更好訪問,不能比父類被重寫方法聲明更多的異常(里氏代換原則)。

          重載對返回類型沒有特殊的要求,不能根據返回類型進行區分。

          區別點重載方法重寫方法
          參數列表必須修改一定不能修改
          返回類型可以修改一定不能修改
          異常可以修改可以減少或刪除,一定不能拋出新的或者更廣的異常
          訪問可以修改一定不能做更嚴格的限制(可以降低限制)

          總結

          方法的重寫(Overriding)和重載(Overloading)是java多態性的不同表現,重寫是父類與子類之間多態性的一種表現,重載可以理解成多態的具體表現形式。

          (1)方法重載是一個類中定義了多個方法名相同,而他們的參數的數量不同或數量相同而類型和次序不同,則稱為方法的重載(Overloading)。

          (2)方法重寫是在子類存在方法與父類的方法的名字相同,而且參數的個數與類型一樣,返回值也一樣的方法,就稱為重寫(Overriding)。

          (3)方法重載是一個類的多態性表現,而方法重寫是子類與父類的一種多態性表現。

          更多編程相關知識,請訪問:編程教學??!

          以上就是java重載與重寫的區別是什么的詳細內容,更多請關注php中文網其它相關文章!

          關鍵詞: java

          中文字幕在线观看2021
          <dd id="3pk9i"><optgroup id="3pk9i"><video id="3pk9i"></video></optgroup></dd>
          <rp id="3pk9i"></rp>

          <dd id="3pk9i"><track id="3pk9i"></track></dd>
            1. <th id="3pk9i"></th>
              1. <ol id="3pk9i"><ruby id="3pk9i"></ruby></ol>