在 PHP 中,静态成员是类的一部分,它们不能被继承。然而,静态方法可以被继承,并且可以在子类中重写。当子类重写了父类的静态方法时,调用该方法将使用子类的方法,而不是父类的方法。
例如,假设有一个父类 Parent
和一个子类 Child
,父类有一个静态方法 method()
,子类重写了这个方法。
class Parent {
public static function method() {
return "Parent method";
}
}
class Child extends Parent {
public static function method() {
return "Child method";
}
}
当调用 Child::method()
时,将返回 "Child method",因为子类重写了父类的方法。
尽管静态成员不能被继承,但是可以通过子类访问父类的静态成员。例如,假设父类有一个静态成员变量 $var
,可以通过子类访问它:
class Parent {
public static $var = "Parent variable";
}
class Child extends Parent {
public static function getVar() {
return self::$var;
}
}
在这个例子中,子类的 getVar()
方法可以访问父类的静态成员变量 $var
。
领取专属 10元无门槛券
手把手带您无忧上云