Child class 将继承的方法设为私有
Child class making inherited methods private
所以,基本上,我有 class B
和 C
,它们的 parent 是 class A
。
Class A
有 public 方法 set()
。但我希望方法 set()
在 class B
和 public 中是私有的 class C
,因此您可以从 class C
并且您不能从 class B
.
的实例中调用它
PHP可以吗?
没有。从理论上讲,您应该能够在任何可以使用父实例的地方使用子实例class,而无需知道自己拥有哪个实例。
如果 class A 有一个 public 方法 foo
,我应该能够为 $a instanceof A
为真的任何值调用 $a->foo()
。
如果子classB把这个方法设为私有,我就不能调用了
这个奇特的名字是 Liskov 替换原则。
但是,您可以自由地使该方法按您喜欢的方式运行,因此可以在 class B 中抛出异常 - 但请确保始终在某个地方捕获它。
所以,基本上,我有 class B
和 C
,它们的 parent 是 class A
。
Class A
有 public 方法 set()
。但我希望方法 set()
在 class B
和 public 中是私有的 class C
,因此您可以从 class C
并且您不能从 class B
.
的实例中调用它
PHP可以吗?
没有。从理论上讲,您应该能够在任何可以使用父实例的地方使用子实例class,而无需知道自己拥有哪个实例。
如果 class A 有一个 public 方法 foo
,我应该能够为 $a instanceof A
为真的任何值调用 $a->foo()
。
如果子classB把这个方法设为私有,我就不能调用了
这个奇特的名字是 Liskov 替换原则。
但是,您可以自由地使该方法按您喜欢的方式运行,因此可以在 class B 中抛出异常 - 但请确保始终在某个地方捕获它。