我在php
中遇到静态成员和继承问题为什么会这样:
class A {
public static function me() {
echo static::$b;
}
}
class B extends A
{
protected static $b = "hello";
}
B::me();
这不是??????????:
class A {
public static function me() {
echo static::$b;
}
}
class B extends A
{
private static $b = "hello";
}
B::me();
据我所知,我指的是来自A上下文的变量$ b 但为什么我可以访问受保护的成员而不是私有成员? 谢谢。
答案 0 :(得分:0)
看。 private
仅适用于班级本身,而protected
仅适用于家庭。难怪如果你为B声明它private
,无论B是否继承自A,都无法在A中访问$ B.另一方面,如果你声明它protected
,A也可以访问它,因为它属于到B的家庭。