博客列表 >子类继承场景级类成员三种访问方式使用-2019-9-30

子类继承场景级类成员三种访问方式使用-2019-9-30

无聊了的博客
无聊了的博客原创
2019年10月01日 00:35:481017浏览

1、演示子类的三个应用场景

实例

<?php

/*
 * 国庆期间作业:
1. 将落下的作业, 尽可能的全部补齐
2. 复习面向对象开发中的静态成员, 类常量,属性重载, 方法重载, 抽象成员, 接口的知识
3. 9月30日作业, 实例演示子类的三个应用场景, 实例演示类成员的三种访问限制符的使用场景
4. 复习数据库的基本操作,并将之关欧阳克老师布置的作业全部完成, 案例全部写完
 */


header('Content-Type:text/html;charset=utf-8');

class A{
    public $price;
    public $name;
    public function __construct($name,$price)
    {
        $this->price = $price;
        $this->name = $name;
    }
    public function getInfo(){
        return $this->name . $this->price;
    }
}

echo "<p>1、复用父类方法</p>";

class B extends A{

}
echo (new B("手机价格信息:",1000))->getInfo();

echo "<p>2、父类功能扩展</p>";

class B1 extends A{
    public function __construct($name,$price, $num)
    {
        parent::__construct($name, $price);
        $this->num = $num;
    }
    public function total(){
        return $this->price * $this->num;
    }
}
$b1 = new B1('手机总价:',1000,10);
echo $b1->name . $b1->total();
echo "<p>3、父类方法重写</p>";

class B2 extends B1{

    public function total(){
        $total = parent::total();
        switch (true){
            case $total > 10000 :
                $dis = 0.5;
                break;
            case ($total>5000 && $total<10000) :
                $dis = 0.88;
                break;
            default :
                $dis = 1;
        }
        return round($total * $dis,2);
    }
}

$b2 = new B2('手机折扣总价:',1000,13);
echo $b2->name . $b2->total();

运行实例 »

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

2、类成员的三种访问限制符的使用场景

实例

<?php

class A{
    public $name;
    protected $price;
    private $num;
    public function __construct($name,$price,$num)
    {
        $this->name = $name;
        $this->price = $price;
        $this->num = $num;
    }

    function get(){
        return $this->price .'------'. $this->num;
    }
}

$A = new A('电脑','3400','2');
echo 'public标识符可外部输出:'.$A->name."<br>";
echo 'protected\private 标识符只能通过内部的方法调用输出:'.$A->get()."<br>";

运行实例 »

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

总结:

1、子类继承父类可以进行方法复用、对父类进行扩展、及方法的重写

2、public 类中,内外都能访问

3、protectd 类中,只能内部访问

4、private 类中,只能内部访问

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议