class Car{
//在这里定义一个共有属性name
public $name='aaa';
}
$car = new Car();
//在这里输出$car对象的name属性
echo $car->name;
//在这里定义一个共有属性name
public $name='aaa';
}
$car = new Car();
//在这里输出$car对象的name属性
echo $car->name;
2017-07-12
<?php
//定义一个Car类并实例化一个对象
class Car{
public $name='汽车';
public function getName(){
$car=new car();
return $this->name;
}
}
//定义一个Car类并实例化一个对象
class Car{
public $name='汽车';
public function getName(){
$car=new car();
return $this->name;
}
}
2017-07-12
我个人认为,根据题意要覆盖speedUp
public function speedUp(){
$this->speed+=50;
return $this->speed;
}
但答案说结果为60实在不能理解,在答案区也见不到此类回答。百度一下PHP的覆盖方法
所谓覆盖,从本质上来说就是重写。就是当子类继承父类的一些方法后,子类又在其内部定义了相同的方法,则这个新定义的方法会覆盖继承而来的父类的方法,子类只能调用其内部定义的方法。
要求:当一个父类和子类有一个方法,参数和名字完全一致,那么子类方法会覆盖父类的方法。
综上,我觉得我这种做法才是实现了覆盖.
public function speedUp(){
$this->speed+=50;
return $this->speed;
}
但答案说结果为60实在不能理解,在答案区也见不到此类回答。百度一下PHP的覆盖方法
所谓覆盖,从本质上来说就是重写。就是当子类继承父类的一些方法后,子类又在其内部定义了相同的方法,则这个新定义的方法会覆盖继承而来的父类的方法,子类只能调用其内部定义的方法。
要求:当一个父类和子类有一个方法,参数和名字完全一致,那么子类方法会覆盖父类的方法。
综上,我觉得我这种做法才是实现了覆盖.
2017-07-12
__construct__destruct__set,__get,__isset,__unset等方法在 PHP 中被称为"魔术方法.
静态是static 动态是。。。。
静态是static 动态是。。。。
2017-07-11
<?php
class Car {
public $speed = 0;
public function speedUp() {
$this->speed += 10;
return $this->speed;}}
class Truck extends Car{
public function speedUp(){
parent::speedUp();
$this->speed+=50;}}
$car = new Truck();
$car->speedUp();
echo $car->speed;
class Car {
public $speed = 0;
public function speedUp() {
$this->speed += 10;
return $this->speed;}}
class Truck extends Car{
public function speedUp(){
parent::speedUp();
$this->speed+=50;}}
$car = new Truck();
$car->speedUp();
echo $car->speed;
2017-07-11
应该是这么理解的:
因为protected function speedUp() 是protected的,所以后面调用这个受保护的方法speedUp时,不需要像左边的例子那样用静态方法static;所以便是 public function start();也因为是protected不是prvate的,方法的里面就不是用"::"而是用"->",只有方法本身是静态的方法才需要用双冒号
因为protected function speedUp() 是protected的,所以后面调用这个受保护的方法speedUp时,不需要像左边的例子那样用静态方法static;所以便是 public function start();也因为是protected不是prvate的,方法的里面就不是用"::"而是用"->",只有方法本身是静态的方法才需要用双冒号
2017-07-11