我有一个班级Parent
,其方法为calculateRevenue();
我还有一个扩展Child
的课程Parent
。我想要做的是在Child
类calculateRevenue();
中使用相同的方法名称,它将调用Parent
类方法的方法,然后执行Child
方法。 / p>
这可能吗?或者相同的名称将覆盖方法功能而无法调用Parent
方法?
答案 0 :(得分:2)
是的,这是可能的。
class Ancestor
{
public function someMethod()
{
return 'foo';
}
}
class Child extends Ancestor
{
public function someMethod()
{
$results = parent::someMethod();
return $results . ' bar';
}
}
$c = new Child;
echo $c->someMethod() . "\n";
输出:foo bar
答案 1 :(得分:2)
这将是这样的:
class Parent {
public function calculateRevenue() {
return 1;
}
}
class Child extends Parent {
public function calculateRevenue() {
$parentRevenue = parent::calculateRevenue();
return 1 + $parentRevenue;
}
}
您必须使用保留字“parent”来调用类父方法。
在这种情况下,“Child”类使用“extend”关键字来ihnerit“Parent”类方法。现在,“Child”类可以使用所有父方法和保留关键字“parent”。