免费 无码进口视频|欧美一级成人观看|亚洲欧美黄色的网站|高清无码日韩偷拍|亚太三区无码免费|在找免费看A片色片一区|激情小说亚洲精品|91人妻少妇一级性av|久久国产综合精品日韓|一级美女操逼大片

學(xué)習(xí)方法

方法重載的條件

時(shí)間:2022-09-23 12:38:54 學(xué)習(xí)方法 我要投稿
  • 相關(guān)推薦

方法重載的條件

  在平日的學(xué)習(xí)中,不管我們學(xué)什么,都需要掌握一些知識(shí)點(diǎn),知識(shí)點(diǎn)是指某個(gè)模塊知識(shí)的重點(diǎn)、核心內(nèi)容、關(guān)鍵部分。還在為沒(méi)有系統(tǒng)的知識(shí)點(diǎn)而發(fā)愁嗎?以下是小編為大家收集的方法重載的條件知識(shí)點(diǎn),僅供參考,大家一起來(lái)看看吧。

  A在不同class中定義的方法 B在同一類(lèi)中定義的方法 C方法名必須相同 D返回類(lèi)型必須相同

  E參數(shù)一定不同 F參數(shù)可以相同。

  方法重載是指在一個(gè)類(lèi)中定義多個(gè)同名的方法,但要求每個(gè)方法具有不同的參數(shù)的類(lèi)型或參數(shù)的個(gè)數(shù)。調(diào)用重載方法時(shí),Java編譯器能通過(guò)檢查調(diào)用的方法的參數(shù)類(lèi)型和個(gè)數(shù)選擇一個(gè)恰當(dāng)?shù)姆椒ā?/p>

  方法重載通常用于創(chuàng)建完成一組任務(wù)相似但參數(shù)的類(lèi)型或參數(shù)的個(gè)數(shù)不同的方法。

  方法重載是讓類(lèi)以統(tǒng)一的方式處理不同類(lèi)型數(shù)據(jù)的一種手段。

  Java的方法重載,就是在類(lèi)中可以創(chuàng)建多個(gè)方法,它們具有相同的名字,但具有不同的參數(shù)和不同的定義。調(diào)用方法時(shí)通過(guò)傳遞給它們的不同個(gè)數(shù)和類(lèi)型的參數(shù)來(lái)決定具體使用哪個(gè)方法。

  java多態(tài)的2種表現(xiàn)形式 方法重載和方法覆蓋

  方法重載:同一個(gè)類(lèi)中,方法名相同,參數(shù)列表不同的2個(gè)或多個(gè)方法構(gòu)成方法的重載。

  方法覆蓋:子類(lèi)重新實(shí)現(xiàn)了父類(lèi)中的方法。

  拓展:用java重載的方法

  public static double max(double num1, double num2) {

  if (num1 > num2)

  return num1;

  else

  return num2;

  }

  如果你調(diào)用max方法時(shí)傳遞的是int型參數(shù),則 int型參數(shù)的max方法就會(huì)被調(diào)用;

  如果傳遞的事double型參數(shù),則double類(lèi)型的max方法體會(huì)被調(diào)用,這叫做方法重載;

  就是說(shuō)一個(gè)類(lèi)的兩個(gè)方法擁有相同的名字,但是有不同的參數(shù)列表。

  Java編譯器根據(jù)方法簽名判斷哪個(gè)方法應(yīng)該被調(diào)用。

  方法重載可以讓程序更清晰易讀。執(zhí)行密切相關(guān)任務(wù)的方法應(yīng)該使用相同的名字。

  重載的方法必須擁有不同的參數(shù)列表。你不能僅僅依據(jù)修飾符或者返回類(lèi)型的不同來(lái)重載方法。

  PHP中子類(lèi)重載父類(lèi)的方法介紹

  在PHP中不能定義重名的函數(shù),也包括不能再同一個(gè)類(lèi)中定義重名的方法,所以也就沒(méi)有方法重載。單在子類(lèi)中可以定義和父類(lèi)重名的方法,因?yàn)楦割?lèi)的方法已經(jīng)在子類(lèi)中存在,這樣在子類(lèi)中就可以把從父類(lèi)中繼承過(guò)來(lái)的方法重寫(xiě)。

  子類(lèi)中重載父類(lèi)的方法就是在子類(lèi)中覆蓋從父類(lèi)中繼承過(guò)來(lái)的方法,父類(lèi)中的方法被子類(lèi)繼承過(guò)來(lái)不就可以直接使用嗎?為什么還要重載呢?因?yàn)橛幸恍┣闆r我們必須要覆蓋的。例如,有一個(gè)“鳥(niǎo)”類(lèi),在這個(gè)類(lèi)中定義了鳥(niǎo)的通用方法“飛翔”。將“鴕鳥(niǎo)”類(lèi)作為它的子類(lèi),就會(huì)將“飛翔”的方法繼承過(guò)來(lái),但只要一調(diào)用“鴕鳥(niǎo)”類(lèi)中的這個(gè)“飛翔”的方法,鴕鳥(niǎo)就會(huì)飛走。雖然鴕鳥(niǎo)是不會(huì)飛的,但其他特性都具有“鳥(niǎo)類(lèi)”的特性,所以在聲明“鴕鳥(niǎo)”類(lèi)時(shí)還是可以繼承“鳥(niǎo)”類(lèi)的,但必須在“鴕鳥(niǎo)”類(lèi)中將“鳥(niǎo)”類(lèi)中繼承過(guò)來(lái)的“飛翔”方法改寫(xiě),就需要在子類(lèi)中重載父類(lèi)中的方法。

  在下面的例子中,聲明的Person類(lèi)中有一個(gè)“說(shuō)話”方法,Student類(lèi)繼承Person類(lèi)后可以直接使用“說(shuō)話”方法。但Person類(lèi)中的“說(shuō)話”方法只能說(shuō)出它自己的成員屬性,而Student類(lèi)對(duì)Person類(lèi)進(jìn)行了擴(kuò)展,多添加了幾個(gè)新的成員屬性。代碼如下所示:

  name = $name;$this ->sex = $sex;$this ->age = $age;}//在人類(lèi)中聲明一個(gè)通用的說(shuō)話方法,介紹一下自己function say(){echo "我的名字:".$this-> name.",性別:".$this ->sex.",年齡:".$this ->age."。

  ";}}//聲明一個(gè)學(xué)生類(lèi),使用extends關(guān)鍵字?jǐn)U展(繼承)person類(lèi)class Student extends Person {private $school; //在學(xué)生類(lèi)中聲明一個(gè)所在學(xué)校school的成員屬性//覆蓋父類(lèi)中的構(gòu)造方法,在參數(shù)列表中添加一個(gè)學(xué)校屬性,用來(lái)創(chuàng)建對(duì)象并初始化成員屬性function __construct($name="",$sex="男",$age=1,$school=""){$this ->name = $name;$this ->sex = $sex;$this ->age = $age;$this ->school = $school;}function study(){echo $this ->name."正在".$this ->school."學(xué)習(xí)

  ";}//定義一個(gè)和父類(lèi)中同名的方法,將父類(lèi)中的說(shuō)話方法覆蓋并重寫(xiě),多說(shuō)出所在的學(xué)校名稱(chēng)function say(){echo "我的名字:".$this ->name.",性別:".$this ->sex.",年齡:".$this ->age.",在".$this ->school."學(xué)校上學(xué)

  ";}}$student= new Student("張三","男",20,"edu"); //創(chuàng)建一個(gè)學(xué)生對(duì)象,并傳給一個(gè)學(xué)校名稱(chēng)參數(shù)$student -> say(); //調(diào)用學(xué)生類(lèi)中覆蓋父類(lèi)的說(shuō)話方法?>

  改程序運(yùn)行后輸出的結(jié)果為:

  我的名字叫:張三,性別:男,我的年齡是:20,在edu學(xué)校上學(xué)

  在PHP中,提供了在子類(lèi)重載的方法中調(diào)用父類(lèi)被覆蓋方法的功能。這樣就可以在子類(lèi)重寫(xiě)的方法中,繼續(xù)使用從父類(lèi)繼承過(guò)來(lái)并被覆蓋的方法,然后再按要求多添加一些新功能。調(diào)用的格式是使用“parent:方法名”在子類(lèi)的重載方法中調(diào)用父類(lèi)中被覆蓋的方法。將上例中的代碼修改一下,在子類(lèi)重寫(xiě)的構(gòu)造方法中使用“parent::__construct()”調(diào)用父類(lèi)中被覆蓋的構(gòu)造方法,再多添加一條對(duì)子類(lèi)中新擴(kuò)展的成員屬性初始化的代碼。在子類(lèi)中重寫(xiě)的say()方法中使用“parent::say()”調(diào)用父類(lèi)中被覆蓋的say()方法,再添加上輸出子類(lèi)成員屬性的功能。

  代碼如下所示:

  name = $name;$this ->sex = $sex;$this ->age = $age;}//在人類(lèi)中聲明一個(gè)通用的說(shuō)話方法,介紹一下自己function say(){echo "我的名字:".$this-> name.",性別:".$this ->sex.",年齡:".$this ->age."。

  ";}}//聲明一個(gè)學(xué)生類(lèi),使用extends關(guān)鍵字?jǐn)U展(繼承)person類(lèi)class Student extends Person {private $school; //在學(xué)生類(lèi)中聲明一個(gè)所在學(xué)校school的成員屬性//覆蓋父類(lèi)中的構(gòu)造方法,在參數(shù)列表中添加一個(gè)學(xué)校屬性,用來(lái)創(chuàng)建對(duì)象并初始化成員屬性function __construct($name="",$sex="男",$age=1,$school=""){//調(diào)用父類(lèi)中被覆蓋的構(gòu)造方法,為從父類(lèi)中集成過(guò)來(lái)額出行賦初值parent::__construct($name,$sex,$age);$this ->school = $school;}function study(){echo $this ->name."正在".$this ->school."學(xué)習(xí)

  ";}//定義一個(gè)和父類(lèi)中同名的方法,將父類(lèi)中的說(shuō)話方法覆蓋并重寫(xiě),多說(shuō)出所在的學(xué)校名稱(chēng)function say(){parent::say(); //調(diào)用父類(lèi)中被本方法覆蓋掉的方法echo "在".$this ->school."學(xué)校上學(xué)

  ";}}$student= new Student("張三","男",20,"edu"); //創(chuàng)建一個(gè)學(xué)生對(duì)象,并傳給一個(gè)學(xué)校名稱(chēng)參數(shù)$student -> say(); //調(diào)用學(xué)生類(lèi)中覆蓋父類(lèi)的說(shuō)話方法?>

  上面的例子輸出的結(jié)果和前一個(gè)例子是一樣的,但在本例中通過(guò)在子類(lèi)中直接調(diào)用父類(lèi)中被覆蓋的方法要簡(jiǎn)便很多。另外,在子類(lèi)覆蓋父類(lèi)的方法時(shí)一定要注意,在子類(lèi)中重寫(xiě)的方法訪問(wèn)權(quán)限一定不能低于父類(lèi)被覆蓋的方法的訪問(wèn)權(quán)限。例如,如果父類(lèi)中的訪問(wèn)權(quán)限是protected,那么在子類(lèi)中重寫(xiě)的方法的權(quán)限就要是protected或public。

【方法重載的條件】相關(guān)文章:

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

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

泰國(guó)移民條件08-21

墨西哥移民條件09-16

韓國(guó)移民的條件08-09

移民條件低的國(guó)家09-27

2022新西蘭移民條件07-20

珠海積分入戶(hù)條件04-28

西安公租房條件10-12