子类使继承方法私有化

时间:2015-04-18 19:42:17

标签: php class inheritance private public

所以,基本上,我有班级BC,其父级是class A
Class A有公开方法set()。但我希望方法set()在课程B中是私有的,在课程C中是公开的,因此您可以从课程C的实例中调用它,但您不能从类B的实例中调用它 是否可以在PHP中使用?

1 个答案:

答案 0 :(得分:2)

没有。理论上,您应该能够在任何可以使用父实例的地方使用子类的实例,而不知道您拥有哪些实例。

如果A类有公共方法foo,我应该能够$a->foo()$a instanceof A为真的任何值致电。{/ p>

如果子类B将此方法设为私有,则无法拨打电话。

这个奇特的名字是Liskov Substitution Principle。

然而,您可以自由地使该方法按照您喜欢的方式运行,因此可以在B类中抛出异常 - 但请确保始终在某处捕获它。