Blogger Information
Blog 18
fans 0
comment 0
visits 13357
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
子类继承场景级类成员三种访问方式使用-2019-9-30
无聊了的博客
Original
1009 people have browsed it

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 类中,只能内部访问

Correction status:qualified

Teacher's comments:protectd 类中,还能在子类中访问
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post