登录  /  注册
博主信息
博文 29
粉丝 0
评论 0
访问量 24473
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
3. 实例演示类继承的作用与功能:2019年3月1号作业
连界现代周伟的博客
原创
1052人浏览过

实例(3. 实例演示类继承的作用与功能)

<?php
class Demo
{
    //对象属性
    public $product;
    public $price;
    //构造函数
    public function __construct($product,$price)
    {
        $this->product = $product;
        $this->price = $price;
    }
    //对象方法
    public function getInfo()
    {
        return '品名:' . $this->product . ', 价格:' . $this->price . '<br>';
    }
}

//创建一个子类继承自Demo
class Sub1 extends Demo
{

}
$sub1 = new Sub1('电话',1980);
echo $sub1->getInfo() . '<br>';
//再创建一个子类继承自Demo,增加属性和方法,扩展父类功能
class Sub2 extends Demo
{
    public $num;  //数量
    //子类构造方法
    public function __construct($product, $price, $num)
    {
        parent::__construct($product, $price);
        $this->num = $num;
    }
    public function total()
    {
        return $this->price * $this->num;
    }
}

$sub2 = new Sub2('手机', 3980,15);
echo $sub2->product . '的总价是:' . $sub2->total() . '<br>';

//方法重写
//为了促销,通常会根据总价,给一个折扣,
//第三个子类,继承自Sub2,而Sub2又继承自Demo,这就形成了一个多层的继承关系
class Sub3 extends Sub2
{
    //重写父类total()方法,增加计算折扣价的功能
    public function total()
    {
        //调用父类Sub2中的total()
        $total = parent::total();
        //设置折扣率
        switch (true)
        {
            case ($total >= 10000 && $total < 20000):
                $discountRate = 0.98; //98折
                break;
            case ($total >= 20000 && $total < 40000):
                $discountRate = 0.88; //88折
                break;
            case ($total >= 40000 && $total < 60000):
                $discountRate = 0.78; //78折
                break;
            case ($total >=60000):
                                $discountRate = 0.68  //68折
                                break;    
            default:
                $discountRate = 1;  //不打折
        }

        return round($total * $discountRate,2);
    }

}

$sub3 = new Sub3('手机',3980,15);
echo '折后的价格是:' . $sub3->total() . '<br>';  //现在访问的是被 重写的total方法

运行实例 »

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


批改状态:合格

老师批语:代码中有一处漏写的分号 在测试的时候没报错么?
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学