php方法重載

來源:互聯網
上載者:User

標籤:類方法   大於等於   對象   php   子類   重寫與重載   方法重載   標識符   複雜   

<?php
/*
* php物件導向的重寫與重載
重寫:
就是當子類繼承父類的一些方法後,子類又在其內部定義了相同的方法,則這個新定義的方法會覆蓋繼承而來的父類的方法,子類只能調用其內部定義的方法。

有以下幾點要求:

1.當一個父類和子類有一個方法,參數和名字完全一致,那麼子類方法會覆蓋父類的方法。

必須參數一致,才會實現方法覆蓋。當參數個數不一致,則會報錯(這就牽扯到上面說所得方法重載)。當方法名字不一致,就不會覆蓋,只是子類新定義的方法。

2.在實行方法覆蓋的時候,存取修飾詞可以是不一樣的,但是子類的存取範圍必須大於等於父類的存取範圍。

這是php這些語言設計時的規定吧。我是這麼理解的是訪問高一層的東西比較容易,如果再去訪問底層的東西許可權肯定要高一些。

要求參數和名字一樣。並不是要求子類,父類名稱相同。

是要求參數和名字一樣,具體就是要求參數的個數與父類相同,而並不是參數名稱一致。即傳遞的參數名字可以為任意,只要保證傳遞的個數相同即可。

看代碼:
*/

class shao
{
public function sasa($name){
echo $name,‘狗!<br/>‘;
}
}
class zhen extends shao{
public function aaa()
{
echo ‘貓<br/>‘;
}
}
$lli = new zhen();
$lli->aaa();
$lli->aaa(‘binghh‘);
?>


<?php
class fu
{
public function text(){
echo ‘父類‘;
}
public function textt(){
echo ‘父親‘;
}
}
class erzi extends fu{
public function text()
{
parent::text();//我要父類的東西
echo ‘兒子‘;//重寫

}
}
$shili = new fu();
$erzi = new erzi();
$erzi->text();
?>
<?php
/**
重載:
重載是類的多態的一種實現。函數重載指一個標識符被用作多個函數名,且能夠通過函數的參數個數或參數類型將這些同名的函數區分開來,調用不發生混淆。即當調用的時候,雖然方法名字相同,但根據參數的不同可以自動調用相應的函數。
php不好實現。
可以使類裡面的某個方法產生多種效果,根據傳入參數不同,可以執行不同的邏輯。
有以下幾點要求:

1、在使用重載時只能通過相同的方法名、不同的參數形式實現。不同的參數類型可以是不同的參數類型,不同的參數個數,不同的參數順序(參數類型必須不一樣);
2、不能通過存取權限、傳回型別、拋出的異常進行重載;
3、方法的異常類型和數目不會對重載造成影響;
有點複雜 代碼不準...
*/
class fu
{
public function text(){
echo ‘父類‘;
}
public function textt(){
echo ‘父親‘;
}
}
class erzi extends fu
{
function test($name)
{
//方法重載
parent::text();//我要父類的東西
echo "erzi",$name;//重寫

}
}

$erzi = new fu();
$erzi-> text("123");

//複製代碼
//重寫只存在於子類與父類中,重載存在於一個類中。
//
//override是重寫
//
//overload是重載
?>

php方法重載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.