类的属性创建,类属性的初始化、以及类的继承跟子类为基类添加属性初始化,并且重写基类中的方法
具体如下:
基类:
<?php /医院 * Created by PhpStorm. * User: John * Date: 2018/5/5 * Time: 11:42 */ //汽车类 class Cart { //创建受保护的属性 protected $type; //类型 protected $brands; //品牌 protected $speed; //时速 //添加构造方法 public function __construct($type,$brands,$speed) { //初始化属性 $this->type = $type; $this->brands = $brands; $this->speed = $speed; } //创建公共运输方法 public function transport() { return '煤运'; } }
子类:
<?php /医院 * Created by PhpStorm. * User: John * Date: 2018/5/5 * Time: 11:53 */ //运输车类,继承汽车类 class TransportCart extends Cart { //为类型创建取值方法 public function __get($name) { return $this->$name; } //为基类增加属性 private $colour; //颜色 private $seat; //座位 //调用基类的构造方法对当前属性进行初始化,并重写 public function __construct($type, $brands, $speed,$colour,$seat) { //调用的是基类的构造方法初始化 parent::__construct($type, $brands, $speed); //初始化子类属性 $this->colour=$colour; $this->seat=$seat; } //重写基类中的方法,给它添加多功能 public function transport() { //返回基类中的结果,并且子类中的结果也一并返回 return parent::transport().','.'运土'; // TODO: Change the autogenerated stub } }
测试类:
使用匿名函数自动添加类实现引用
<?php /医院 * Created by PhpStorm. * User: John * Date: 2018/5/5 * Time: 12:00 */ //使用匿名函数自动加载类 spl_autoload_register(function ($className){ require $className.'.php'; }); $transports = new TransportCart('大卡车','东风','200km/h','红色','4位'); //获取受保护的属性并输出 echo '类型:' . $transports->type.'<br>'; echo '品牌:' . $transports->brands.'<br>'; echo '时速:' . $transports->speed.'<br>'; echo '颜色:' . $transports->colour.'<br>'; echo '限座:' . $transports->seat.'<br>'; //在子类中调用基类中的方法 echo '这辆车的工作是:'.$transports->transport();
结果: