Correction status:Uncorrected
Teacher's comments:
父类Customer.php
客户类,将客户的名称、地址、电话、联系人等基本信息定义为类的属性,并创建call()方法用于电话回访。
<?php /* * 客户类 */ /** * 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()复用了父类方法。
<?php /* * 汽修厂类 继承 客户类 */ /** * 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
<?php /* * 类的继承与方法重载 * */ //使用自动加载器来加载类:(简写版) spl_autoload_register(function($className){ require './class/'.$className.'.php'; }); $repair = new RepairShops('冀东汽修','曹妃甸区海港路','03155555555','凌云','保养变速箱',4); //父类中的属性 echo '名称: '.$repair->name.'<br>'; echo '地址: '.$repair->address.'<br>'; echo '电话: '.$repair->phone. '<br>'; echo '联系人: '.$repair->linkman. '<br>'; //在子类中扩展的属性 echo '项目:'.$repair->project.'<br>'; echo '人数:'.$repair->repairman.'<br>'; //重写了的方法 echo $repair->call().'<br>';
点击 "运行实例" 按钮查看在线实例
运行效果和截图