我有這樣的代碼:爲什麼child方法必須具有與父方法相同的參數?
abstract class Base{
public function delete(){
// Something like this (id is setted in constructor)
$this->db->delete($this->id);
}
}
然後我有另一個類延伸基地,例如:
class Subtitles extends Base{
public function delete($parameter){
parent::delete();
// Do some more deleting in transaction using $parameter
}
}
這也恰好有方法刪除。
這裏談到的問題:
當我打電話
$subtitles->delete($parameter)
我得到:
Strict error - Declaration of Subtitles::delete() should be compatible with Base::delete()
所以我的問題是,爲什麼我不能有後代與方法不同的參數?
謝謝你解釋。
+用於提供解決方法。 –
那麼它比這更復雜,但我明白了。謝謝。 –