亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

class Truck extends Car{ public function speedUp(){ $this->speed=parent::speedUp()+50; } }

1、parent::speedUp()這里為什么要這樣寫呢

2、還有事速度累加50,意思是說在父類speed已經加上10的基礎上再加50嗎?還是說在speed=0的基礎上加50

正在回答

5 回答

<?php
class?Car?{
????public?$speed?=?0;?//汽車的起始速度是0
????
????public?function?speedUp()?{
????????$this->speed?+=?10;
????????return?$this->speed;
????}
}
//定義繼承于Car的Truck類
class?Truck?extends?Car{
??
?function?speedUp?()
?{
?????$this?->?speed?=?parent::speedUp();
?????return?$this?->?speed?+=50;
?}
??
}

$car?=?new?Truck();
$car->speedUp();
echo?$car->speed;

表示子類Truck集成了父類car, 其中的parent::speedUp();表示調用父類的speedUp()方法。

1 回復 有任何疑惑可以回復我~

子類覆蓋父類的方法是要通過在子類中重新編寫新的方法,如果不更改的話,則默認子類繼承父類的方法。例如

class parentClass { public function test(){ echo "parent"; }}

1--> class childClass extends parent{ } 如果子類繼承父類但并沒有重寫其中的test方法,那么則繼承父類的test方法

即 $child = new childClass(); $child->test();//輸出parent

2--> classchildClass extends parent{ public function test(){ echo "child"; }} 如果子類重寫了方法,那么再實例化childClass類調用test方法會調用子類重寫后的test方法。也就是說,如果兒子有能力(指重寫了方法),那么就能夠繼承父親的財產(父類的方法)并且把它發揚光大(重寫);如果兒子沒能力(沒有重寫方法),那么久只能夠啃老(調用父類的方法)。這樣希望能幫你理解吧。


1 回復 有任何疑惑可以回復我~
#1

qq_伊藤_03776080 提問者

好的好的謝謝!
2017-05-12 回復 有任何疑惑可以回復我~

那這樣通過子類調用父類的方法就可以覆蓋父類里面的speedUp方法了嗎?為什么呀?

0 回復 有任何疑惑可以回復我~

1、parent::speedUp() 是指調用父類的speedUp()方法,此時已經執行了$this->speed += 10; speed變為10;

2、累加的意思是在10的基礎上在增加50.

1 回復 有任何疑惑可以回復我~

子類調用父類方法要這么用 parent::speedUp()

他這里累加50的意思應該是,父類speed基礎上加50;

因為parent::speedUp()這里已經調用了父類里speedUp()這個方法,speed已經=10;后面再加50,輸出就是60了;

2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

class Truck extends Car{ public function speedUp(){ $this->speed=parent::speedUp()+50; } }

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號