<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            java語言

            override和Java overload的定義及異同點分析

            時間:2025-05-16 02:49:50 java語言 我要投稿
            • 相關推薦

            override和Java overload的定義及異同點分析

              方法的重寫(Overriding)和重載(Overloading)是Java多態性的不同表現。重寫(Overriding)是父類與子類之間多態性的一種表現,而重載(Overloading)是一個類中多態性的一種表現。

              如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了。

              如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型或有不同的參數次序,則稱為方法的重載(Overloading)。不能通過訪問權限、返回類型、拋出的異常進行重載.

              1.方法重載(overload)

              概念:簡單的說:方法重載就是類的同一種功能的多種實現方式,到底采用哪種方式,取決于調用者給出的參數。

              注意事項:

              (1)方法名相同

              (2)方法的參數類型、個數、順序不至少有一項不同

              (3)方法返回類型可以不同

              (4)方法的修飾符可以不同

              如果只是返回類型不一樣,不能夠構成重載

              如果只是控制訪問修飾符號不一樣,也是不能構成重載的

              Overloaded的方法是可以改變返回值的類型。

              2.方法覆蓋(override)

              概念:簡單的說:方法覆蓋就是子類有一個方法,和父類的某個方法的名稱、返回類型、參數一樣,那么我們就說子類的這個方法覆蓋了父類的那個方法。

              注意事項:方法覆蓋有很多條件,總的講有兩點一定要注意:

              (1)子類的方法的返回類型,參數,方法名稱,要和父類方法的返回類型,參數,方法名稱完全一樣,否則編譯出錯。

              (2) 子類方法不能縮小父類方法的訪問權限(反過來是可以的)

              例:

              Overrride實例

              復制代碼 代碼如下:

              class A{

              public int getVal(){

              return(5);

              }

              }

              class B extends A{

              public int getVal(){

              return(10);

              }

              }

              public class override {

              public static void main(String[] args) {

              B b = new B();

              A a= (A)b;//把 b 強 制轉換成A的類型

              int x=a.getVal();

              System.out.println(x);

              }

              }

              Overload實例

              package com.guonan;

              //Demostrate method voerloading.

              class OverloadDemo {

              void test(){

              System.out.println("NO parameters");

              }

              void test(int a){

              System.out.println("a:"+a);

              }//end of Overload test for one integer parameter.

              void test(int a, int b){

              System.out.println("a and b:"+a+" "+b);

              }

              double test(double a){

              System.out.println("double a:"+a);

              return a*a;

              }

              }

              class Overload{

              public static void main(String[] args) {

              OverloadDemo ob = new OverloadDemo();

              double result;

              ob.test();

              ob.test(10);

              ob.test(10, 20);

              result = ob.test(123.25);

              System.out.println("Result of ob.test(123.25):"+result);

              }

              }

            【override和Java overload的定義及異同點分析】相關文章:

            Java數組的定義和使用09-04

            Java和.NET開發語言的不同點08-10

            Java多線程的定義狀態和屬性08-23

            Java“異或” 運算符08-17

            Java中定義與聲明的區別05-21

            Java類的定義和聲明05-16

            Java語言中接口的定義及實現07-21

            java中定義常量的方法及介紹08-27

            Java語言的現狀和發展前景分析09-14

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看