类的属性创建,类属性的初始化、以及类的继承跟子类为基类添加属性初始化,并且重写基类中的方法
具体如下:
基类:<?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.'
';
echo '品牌:' . $transports->brands.'
';
echo '时速:' . $transports->speed.'
';
echo '颜色:' . $transports->colour.'
';
echo '限座:' . $transports->seat.'
';
//在子类中调用基类中的方法
echo '这辆车的工作是:'.$transports->transport();
结果: