<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. override和Java overload的定義及異同點分析

    時間:2025-11-28 11:50:13 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;/pic/p>

      int x=a.getVal();

      System.out.println(x);

      }

      }

      Overload實例

      package com.guonan;

      /pic/p>

      class OverloadDemo {

      void test(){

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

      }

      void test(int a){

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

      }/pic/p>

      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數組的定義和使用11-03

    Java和.NET開發語言的不同點11-01

    Java多線程的定義狀態和屬性12-25

    Java“異或” 運算符12-09

    Java類的定義和聲明03-03

    Java中定義與聲明的區別10-31

    Java語言中接口的定義及實現10-05

    java中定義常量的方法及介紹03-17

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

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人