熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

Java中overload和override的區別

2013-11-15 12:04:59  來源: JSP教程 

   方法重載(overload)
概念簡單的說:方法重載就是類的同一種功能的多種實現方式到底采用哪種方式取決於調用者給出的參數
注意事項
) 方法名相同
) 方法的參數類型個數順序不至少有一項不同
) 方法返回類型可以不同
) 方法的修飾符可以不同
如果只是返回類型不一樣不能夠構成重載
如果只是控制訪問修飾符號不一樣也是不能構成重載的
Overloaded的方法是可以改變返回值的類型
方法覆蓋(override)
概念簡單的說方法覆蓋就是子類有一個方法和父類的某個方法的名稱返回類型參數一樣那麼我們就說子類的這個方法覆蓋了父類的那個方法
注意事項方法覆蓋有很多條件總的講有兩點一定要注意
) 子類的方法的返回類型參數方法名稱要和父類方法的返回類型參數方法名稱完全一樣否則編譯出錯
) 子類方法不能縮小父類方法的訪問權限(反過來是可以的)

  例

  Overrride實例

  class A{

  public int getVal(){

  return();

  }

  }

  class B extends A{

  public int getVal(){

  return();

  }

  }

  public class override {

  public static void main(String[] args) {

  B b = new B();

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

  int x=agetVal();

  Systemoutprintln(x);

  }

  }

  Overload實例

  package comguonan;

  //Demostrate method voerloading

  class OverloadDemo {

  void test(){

  Systemoutprintln("NO parameters");

  }

  void test(int a){

  Systemoutprintln("a:"+a);

  }//end of Overload test for one integer parameter

  void test(int a int b){

  Systemoutprintln("a and b:"+a+" "+b);

  }

  double test(double a){

  Systemoutprintln("double a:"+a);

  return a*a;

  }

  }

  class Overload{

  public static void main(String[] args) {

  OverloadDemo ob = new OverloadDemo();

  double result;

  obtest();

  obtest();

  obtest( );

  result = obtest();

  Systemoutprintln("Result of obtest():"+result);

  }

  }


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20248.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.