class Car {
private static $speed = 10;
public static function getSpeed() {
return self::$speed;
}
public static function speedUp() {
return self::$speed+=10;
}
} // 这个是父类 第一个$speed 是私有的静态的属性 值是10 第二个getSpeed 是公共的静态方法 这个方法 是获取 这个父类里面的属性$speed的 self是什么意思 不清楚 然后第三个是类里面的方法 是让这个父类里面的$speed属性 自加10的意思 我不懂 第二个 方法 有啥用 就是获取么?那么 删除掉 第二个方法 直接运行 第三个方法 让$speed属性自加10不行么?第二个 方法 有什么用呢?
class BigCar extends Car {
public static function start() {
parent::speedUp(); //这个是子类了 这个子类里面的start()方法 就是调用 父类里面的speedUp这个 方法的
}
}
BigCar::start();echo BigCar::getSpeed();
求高手 详细 解答 万分感谢 特别是 父类 里面的 第二个方法 我不知道有啥用 可以省略么?如果省略 会怎么样?
你的报错问题是,你把方法删了,还去调用那个方法。echo BigCar::getSpeed(); 去掉这行。
1、静态属性 是共享的,而不是一个实例对象对应一个属性。 每一个实例对象都可以对它进行操作。
2、静态属性可以通过普通方法调用。
3、2都回答了可以通过普通方法调用啦。
我说 你删除getSpeed方法后的报错代码哦
class Car {
private static $speed = 10;
public static function getSpeed() {
return self::$speed;
}
public static function speedUp() {
return self::$speed+=10;
}
}
class BigCar extends Car {
public static function start() {
parent::speedUp();
}
}
BigCar::start();
echo BigCar::getSpeed();
你把代码发给我看一下
第二个方法存在的意义是,在你不想对$speed进行 假发运算时就想得到它的值时调用它。
你要是觉得,你每次想访问$speed值的时候 想得到的结果就是当前值 + 10 后的结果的话,可以省略