国产精品V在线播放,免费AV网站,亚洲福利在线观看,国产成人亚洲综合网站小说,亚洲熟妇AV乱码在线观看,国产AV无码专区亚洲AV漫画,在线成人av,男女18禁啪啪无遮挡激烈网站
學習方法

方法重載與方法重寫

時間:2022-10-01 00:57:37 學習方法

方法重載與方法重寫

  方法重載與方法重寫

  方法重載:就是在同一個類中,方法的名字相同,但參數個數、參數的類型或返回值類型不同!

  方法重寫:它是指子類和父類的關系,子類重寫了父類的方法,但方法名、參數類型、參數個數必須相同!

  Java語言中的概念就是多,這回又有兩個概念,重載和重寫。這是兩個新概念,也是兩個令初學者容易混淆的概念。他們的概念截然不同,只不過都有個“重”字,就以為是很像的。

  下面解釋一下這兩個概念:

  方法重載(overloading method) 是在一個類里面,方法名字相同,而參數不同。返回類型呢?可以相同也可以不同。

  方法重寫(overiding method) 子類不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱方法覆蓋。如果還是搞混的話,就把“重寫覆蓋”,這個詞多念幾遍吧。知道是覆蓋的話,就知道是子類覆蓋父類的方法了。

  實踐: 重載的例子

  public class MethodOverloading {

  void recieve(int i) {

  System.out.println("接收一個int數據");

  System.out.println("i="+i);

  }

  void recieve(float f) {

  System.out.println("接受一個float型的數據");

  System.out.println("f="+f);

  }

  void recieve(String s) {

  System.out.println("接受一個String型數據");

  System.out.println("s="+s);

  }

  public static void main(String[] args){

  MethodOverloading m = new MethodOverloading();

  m.recieve(3456);

  m.recieve(34.56);

  m.recieve(“......“);

  }

  }

  大家看到了上面的例子方法receive()有三個,名字相同參數不同。這樣的話,在main()調用的時候,參數用起來就很方便了。重寫的例子似乎不用舉了,記不住的話,就和“覆蓋”。

  有時候,重載和重寫的方式有些復雜,在jdk5里面。有一些方式能簡化一些。我們來看看吧,jdk5的可變參數。 如果把相同參數類型的方法重載好幾遍真的是很煩。就一個方法,pri(String args), pri(String arg0 ,String arg1), pri(String arg0,String arg1,String arg2), pri(String arg0,String arg1,String arg2,String arg3)。這樣的話會寫很多煩瑣的代碼。現在jdk5可以,用“…”來代替這些參數。

  實踐:

  public class overload {

  //若干個相同類型的參數,用“...”代替

  public void pri(String... strings ){

  for (String str : strings) //for這個循環語句也有迭代的意思

  System.out.print(str);

  }

  public static void main(String[] args){

  new overload().pri("100jq"," );

  }

  }

  jdk5的方法重寫,比以前多了一個叫做協變返回的概念。在以往jdk的版本中,還有一個比較讓人討厭的地方。方法重寫確實是比較不錯的機制,如果想用父類的方法,寫個super就可以了,如果不想用父類的方法就重寫覆蓋。但是重寫覆蓋的返回類型不能覆蓋,父類的類型不夠用怎么辦,我們想在子類重寫它的類型可以嗎?現在可以了。

  看下面的例子:

  class Point2D { //定義二維的點

  protected int x, y;

  public Point2D() {

  this.x=0;

  this.y=0;}

  public Point2D(int x, int y) {

  this.x = x;

  this.y = y;

  }}

  //定義三維的點,繼承二維

  class Point3D extends Point2D {

  protected int z;

  public Point3D(int x, int y) {

  this(x, y, 0);

  }

  public Point3D(int x, int y, int z) {

  this.x = x;

  this.y = y;

  this.z = z;

  }}

  //定義二維的位置

  class Position2D {

  Point2D location;

  public Position2D() {

  this.location = new Point2D();

  }

  public Position2D(int x, int y) {

  this.location = new Point2D(x, y);

  }

  public Point2D getLocation() {

  return location;

  }}

  //定義三維的位置,繼承二維的位置

  class Position3D extends Position2D {

  Point3D location; //在這里已經變成Point3D的類型了

  public Position3D(int x, int y, int z) {

  this.location = new Point3D(x, y, z);

  }

  @Override //注釋是重寫方法

  public Point3D getLocation() {

  return location; //返回是子類的類型而不是原來的類型了

  }

  }

【方法重載與方法重寫】相關文章:

方法重載和方法重寫的概念和區別09-06

方法重載和方法重寫的區別是什么11-16

方法重載的條件09-23

什么是方法重載11-15

方法重載與覆蓋的區別11-04

學習方法要有科學的方法10-11

預習方法和學期預習方法10-26

重寫作文10-03

方法的作文03-11

學習的方法08-14

主站蜘蛛池模板: 色妺妺视频网| 国产精品永久在线观看 | 国产精品av在线一区二区三区 | 欧美一性一乱一交一视频| 国产菊眼屁股无码免费| 免费乱码人妻系列无码专区| 欧美性69式xxxx护士| 国产香蕉在线视频| 日韩少妇内射免费播放18禁裸乳 | 漠河县| 少妇极品熟妇人妻无码| 青青草99| 婷婷综合亚洲| 国产精品成人av电影不卡| 成 人 免费观看网站| 中文字幕精品aⅴ内射夜夜夜| 国产l精品国产亚洲区| 在线天堂最新版资源| 国产口爆| 盐亭县| 多毛小伙内射老太婆| 亚洲日韩在线中文字幕第一页 | 久久精品一本到99热免费| 青青草视频免费观看| 中文字幕日韩人妻不卡一区 | 99这里只有精品| 亚洲三级高清免费| av无码av天天av天天爽| 礼泉县| www内射国产在线观看| 九九热色| 久久人妻公开中文字幕| 国产VA视频| 无码人妻中文| 成人超碰在线| 裸体美女无遮挡免费网站| 国产一区二区三区怡红院| 国产AV影片麻豆精品传媒| 国产成人高清亚洲综合| 日本午夜精品一区二区三区电影| bt天堂新版中文在线|