父类Customer.php
客户类,将客户的名称、地址、电话、联系人等基本信息定义为类的属性,并创建call()方法用于电话回访。
实例
/*
* 客户类
*/
/**
* Description of Customer
*
* @author Dell
*/
class Customer
{
protected $name; //名称
protected $address; //地址
protected $phone; //电话
protected $linkman; //联系人
public function __construct($name,$address,$phone,$linkman)
{
$this->name = $name;
$this->address = $address;
$this->phone = $phone;
$this->linkman = $linkman;
}
public function call() //回访
{
echo '电话回访';
}
}
运行实例 »
点击 "运行实例" 按钮查看在线实例
子类RepairShops.php
客户群体中的修理厂类,继承了父类Customer.php的基本属性,同时新增了修理项目和用工人数2个属性,重写了父类方法call(),其中用parent::call()复用了父类方法。
实例
/*
* 汽修厂类 继承 客户类
*/
/**
* Description of RepairShops
*
* @author Dell
*/
class RepairShops extends Customer
{
//创建查询器访问父类受保护的属性
public function __get($name) {
return $this->$name;
}
private $project; //维修项目
private $repairman; //修理工人数
public function __construct($name,$address,$phone,$linkman,$project,$repairman) {
//调用父类构造器
parent::__construct($name, $address, $phone, $linkman);
$this->project = $project;
$this->repairman = $repairman;
}
//重写父类方法
public function call() {
return parent::call().'.询问'.$this->project.'是不是要用'.$this->repairman.'个人?';
}
}
运行实例 »
点击 "运行实例" 按钮查看在线实例
调用实例m.php
实例
/*
* 类的继承与方法重载
*
*/
//使用自动加载器来加载类:(简写版)
spl_autoload_register(function($className){
require './class/'.$className.'.php';
});
$repair = new RepairShops('冀东汽修','曹妃甸区海港路','03155555555','凌云','保养变速箱',4);
//父类中的属性
echo '名称: '.$repair->name.'
';
echo '地址: '.$repair->address.'
';
echo '电话: '.$repair->phone. '
';
echo '联系人: '.$repair->linkman. '
';
//在子类中扩展的属性
echo '项目:'.$repair->project.'
';
echo '人数:'.$repair->repairman.'
';
//重写了的方法
echo $repair->call().'
';
运行实例 »
点击 "运行实例" 按钮查看在线实例
运行效果和截图