博主信息
墨雨的博客
博文
46
粉丝
3
评论
2
访问量
22384
积分:1
P豆:342.53

PHP父类的继承和方法重写 2018年5月3日

2018年05月04日 12:12:56阅读数:2171博客 / 墨雨的博客/ PHP中文网2期培训班作业

父类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>';

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行效果和截图

草图.png


批改状态:未批改

老师批语:

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
天蓬老师
  • 天蓬老师· 2018-05-05 17:43:191楼
  • 看到了曹妃甸,我笑了~~ 因为我也是半个唐山人

  • 回复
  • 多态存在必要条件:1、;2、3引用指向子对象;多态实现式:1、;2、接口;3、抽象抽象
    javascript6种:1、原型链,其点是让新实例原型等于实例;2、借用构造函数(也称伪造对象或经典);3、组合(组合原型链借用构造函数);4、原型式