Stage :: add()的声明必须与TherapyElement :: add(TherapyElement $ TA)兼容

时间:2016-04-07 09:48:56

标签: php oop

我有方法Crate(TherapyElement $ te)的抽象类TherapyElement。我还有3个课程(培训,阶段,阶段)扩展了TherapyElement。我想在下一步实现方法“add()”: 训练:

public function add(Stage $stage ) {
   ...     
}

阶段:

public function add(Phase $stage ) {
        ...
}

阶段:

public function add(Phase $stage ) {
       .. 
}

但我收到错误Stage :: add()的声明必须与TherapyElement :: add(TherapyElement $ TA)兼容。我想如果Training,Stage,Phase扩展了TherapyElement,那么它们就是TherapyElement的实例,可以作为参数使用。

1 个答案:

答案 0 :(得分:1)

问题是参数名称必须相同。在基础TherapyElement类中,您调用了参数$TA,而在其他类中,您将其称为$stage

将它们全部更改为$TA$stage,而不是互换它们。