所以,基本上,我有班级B
和C
,其父级是class A
。
Class A
有公开方法set()
。但我希望方法set()
在课程B
中是私有的,在课程C
中是公开的,因此您可以从课程C
的实例中调用它,但您不能从类B
的实例中调用它
是否可以在PHP中使用?
答案 0 :(得分:2)
没有。理论上,您应该能够在任何可以使用父实例的地方使用子类的实例,而不知道您拥有哪些实例。
如果A类有公共方法foo
,我应该能够$a->foo()
为$a instanceof A
为真的任何值致电。{/ p>
如果子类B将此方法设为私有,则无法拨打电话。
这个奇特的名字是Liskov Substitution Principle。
然而,您可以自由地使该方法按照您喜欢的方式运行,因此可以在B类中抛出异常 - 但请确保始终在某处捕获它。