我可以重寫子類中的PHP方法,並更改簽名中的參數,如下所示。PHP子類可以改變重寫方法的參數嗎?
class theParent {
function myMethod($param1) {
// code here
}
}
class theChild extends theParent {
function myMethod($param1, $param2) {
// code here
}
}
我測試了這一點,它工作正常,並不會引發任何錯誤。我的問題是,這是不好的形式?還是OOP的基本原則?
如果父方法聲明爲抽象,則子簽名不能偏離。據推測,如果你需要強制執行界面的這個方面,這是使用的機制?
這孩子上課是不是第一類的子類。更何況這是無效的語法... – nickb 2012-07-26 21:49:25
它被稱爲**重寫**。如果您想阻止子類重寫某個方法,請使用[final](http://php.net/manual/en/language.oop5.final.php)關鍵字。 – 2012-07-26 22:33:04