php 调用父级方法,php – 强制调用父方法

您可以使用以下方式强制执行该呼叫:

abstract class APrimitive{

final public function validate(){

//do the logic in validate

overrideValidate();

}

protected function overrideValidate(){

}

}

class CSophisticated extends APrimitive{

protected function overrideValidate(){

}

}

现在只允许调用验证,这将反过来称为您的覆盖方法.语法可能有点偏离(PHP不是我的选择语言),但原则可以应用于大多数OOP语言.

进一步说明:

abstract class APrimitive{

public function validate(){

echo 'APrimitive validate call.';

overrideValidate();

}

protected function overrideValidate(){

}

}

class CSophisticated extends APrimitive{

protected function overrideValidate(){

echo 'CSophisticated call.';

}

}

CSophisticated foo;

foo.overrideValidate(); //error - overrideValidate is protected

foo.validate(); //

输出:

APrimitive validate call.

CSophisticated call.

函数调用基本上做如下:

foo.validate() -> APrimitive.validate() -> ASophisticated.overrideValidate() (or APrimitive.overrideValidate() if it wasn't overriden)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值