Child class 将继承的方法设为私有

Child class making inherited methods private

所以,基本上,我有 class BC,它们的 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 中抛出异常 - 但请确保始终在某个地方捕获它。