av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

java語言

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

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

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

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

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

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

  1.方法重載(overload)

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

  注意事項:

  (1)方法名相同

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

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

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

  如果只是返回類型不一樣,不能夠構(gòu)成重載

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

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

  2.方法覆蓋(override)

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

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

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

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

  例:

  Overrride實例

  復(fù)制代碼 代碼如下:

  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 強(qiáng) 制轉(zhuǎn)換成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的定義及異同點分析】相關(guān)文章:

Java數(shù)組的定義和使用09-04

Java和.NET開發(fā)語言的不同點08-10

Java多線程的定義狀態(tài)和屬性08-23

Java“異或” 運(yùn)算符08-17

Java中定義與聲明的區(qū)別05-21

Java類的定義和聲明05-16

Java語言中接口的定義及實現(xiàn)07-21

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

Java語言的現(xiàn)狀和發(fā)展前景分析09-14