久久精品99久久|国产剧情网站91|天天色天天干超碰|婷婷五天月一av|亚州特黄一级片|亚欧超清无码在线|欧美乱码一区二区|男女拍拍免费视频|加勒比亚无码人妻|婷婷五月自拍偷拍

學習方法

方法重寫和方法重載

時間:2022-10-01 00:55:35 學習方法 我要投稿

方法重寫和方法重載

  在Java中,以下關于方法重載和方法重寫描述正確的是?

  方法重載和方法的重寫實現(xiàn)的功能相同

  方法重載出現(xiàn)在父子關系中,方法重寫是在同一類中

  方法重載的返回值類型必須一致,參數(shù)項必須不同

  方法重寫的返回值類型必須相同或相容。(或是其子類)

  方法重載與方法重寫、this關鍵字和super關鍵字

  1、方法重載

  重載能夠使具有相同名稱但不同數(shù)目和類型參數(shù)的類傳遞給方法。

  注:

  一是重載方法的參數(shù)列表必須與被重載的方法不同,并且這種不同必須足以清楚地確定要調(diào)用哪一個方法;

  二是重載方法的返回值類型可以與被重載的方法相同,也可以不同,但是只有返回值類型不同不能表示為重載。

  例如,最常用的println()方法在JDK的java.io.PrintStream中定義了十幾種形式的重載,常用格式如下:

  public void println(int i) {....}

  public void println(double i) {....}

  public void println(String i) {....}

  /**********************************************************

  * "方法重載"的使用方法及其示例代碼*/

  public class OverloadRewrite

  {

  void num(int i){

  System.out.println("接收到的是int類型參數(shù),其值="+i);

  }

  void num(float j){

  System.out.println("接收到的是float類型參數(shù),其值="+j);

  }

  void num(String k){

  System.out.println("接收到的是String類型參數(shù),其值="+k);

  }

  public static void main(String [] args) {

  OverloadRewrite a=new OverloadRewrite();

  a.num(100);

  a.num(100.20f);

  a.num("Hello!");

  }

  }

  2、方法重寫

  當子類繼承父類時,可以擁有父類中的成員方法和成員變量,在子類創(chuàng)建獨有的成員即可。但是,如果創(chuàng)建一個與父類中相同名稱、相同返回值類型、相同參數(shù)列表的方法,只是方法體中的實現(xiàn)不同,以實現(xiàn)不同于父類的功能,這種方式被稱為方法重寫或方法覆蓋。

  注:

  一是返回值類型與參數(shù)列表必須與被重寫的返回值類型和參數(shù)列表相同,否則不能稱為重寫;

  二是訪問修飾符的限制一定要大于被重寫方法的訪問修飾符(public > protected > default > private);

  三是重寫方法一定不能拋出新的檢查異;蛘弑缺恢貙懛椒暶鞲訉挿旱臋z查型異常。例如,父類的一個方法聲明了一個檢查異常IOException,在重寫這個方法時,就不能拋出Exception,只能拋出IOException的子類異常,可以拋出非檢查異常。

  /**********************************************************

  * "方法重寫"的使用方法及其示例代碼*/

  public class OverloadRewrite

  {

  public String Name;

  public String Address;

  public OverloadRewrite(String name,String address) { //構(gòu)造方法

  this.Name=name;

  this.Address=address;

  }

  public String toString() { //重寫toString

  return "我的名字是:"+Name+",產(chǎn)地是:"+Address;

  }

  public class sichuancai extends OverloadRewrite{ // 繼承

  public String Detail;

  public sichuancai(String name,String address,String detail){ //構(gòu)造方法

  super(name, address); //super調(diào)用父類相應的構(gòu)造方法

  this.Detail=detail;

  }

  }

  // public String toString() { //重寫toString

  // return "我的名字是:"+Name+",產(chǎn)地是:"+Address+",特點是:"+this.Detail;

  // }

  public static void main(String [] args) {

  OverloadRewrite food=new OverloadRewrite("面條", "意大利");

  System.out.println(food);

  sichuancai sichuan=food.new sichuancai("麻辣燙", "成都", "麻辣和香辣");

  System.out.println(sichuan);

  }

  }

  3、this關鍵字

  this關鍵字可用于在任何實例方法內(nèi)指向當前對象,也可指向?qū)ζ湔{(diào)用當前方法的對象,或者在需要當前類型對象引用時使用。

  注:當一個類的屬性名或成員變量與訪問該屬性的方法參數(shù)名相同時,則需要使用this關鍵字來訪問類中的屬性,以區(qū)分類的屬性和方法中的參數(shù)。

  4、super關鍵字

  由于子類不能繼承父類的構(gòu)造方法,因此要調(diào)用父類的構(gòu)造方法,必須在子類的構(gòu)造方法的第一行使用super()。

  super()方法會調(diào)用父類相應的構(gòu)造方法,完成子類對象的部分初始化工作。

  注:程序在以下兩種情況下需要使用super()關鍵字:

  一是在類的構(gòu)造方法中,通過super語句調(diào)用該類的父類的構(gòu)造方法。

  二是在子類中訪問父類中的成員。

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

方法重載和方法重寫的概念和區(qū)別09-06

方法重載和方法重寫的區(qū)別是什么11-16

方法重載的條件09-23

什么是方法重載11-15

方法重載與覆蓋的區(qū)別11-04

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

讀書方法和心得03-14

讀書的方法和技巧07-27

預習的策略和方法04-23

演講的技巧和方法11-14