我显然没有正确理解继承。我会让我的代码说话:
abstract class Calc {
private $x;
private $y;
public function AddNumbers() {
echo $this->x. " + " .$this->y;
}
}
class myCalc extends Calc {
public function __construct ($x,$y) {
$this->x = $x;
$this->y = $y;
}
}
$calc1 = new myCalc(3,4);
$calc1->AddNumbers();
echo 'done';
exit;
好的,所以这里发生了什么:我想要一个抽象类,它将定义两个属性(x 和 y)和一个抽象方法,(不要介意数字的连接,方法的实现超出了我的问题)将访问那里的属性。
然后,一个具体的类扩展了那个抽象的类。如您所见,我可以成功访问属性并设置它们,但是当我调用添加数字时,似乎属性没有设置。
发生了什么事,为什么这不起作用,我该如何解决?我可以只定义一个在具体类中添加数字的方法,但我想在抽象类中有一个可以重用的定义的方法。
谢谢!