class Car
{
public static function model()
{
self::getModel();
}
protected static function getModel()
{
echo "I am a Car!";
}
}
Car::model();//I am a Car!
class A extends Car
{
protected static function getModel()
{
echo "I am a Mercedes!";
}
}
A::getModel();//I am a Car!
class Car
{
public static function model()
{
static::getModel();
}
protected static function getModel()
{
echo "I am a Car!";
}
}
class B extends Car
{
protected static function getModel()
{
echo "I am a Mercedes!";
}
}
Car::model();//I am a Car!
B::model();//I am a Mercedes!
static:如果在子类中重写了父类中的static方法、属性,父类就会去访问了子类的static方法
self: 是类内指针,不管子类有没有重写过父类中的方法、属性都指向本类的静态方法、属性