php面向对象基础(二)

2018-06-22 05:15:47来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

面向对象三大特性
1.封装
目的:为了使类更加安全
做法:
a.将成员变量变为私有的
b.做一个成员方法来间接访问
c.在该方法里边加限制条件
class Ren
{
    private $age;//18-50之间
    private $name;
    //魔术方法,给变量赋值
    function __set($n,$v)
    {
        if($n=="age")
        {
            if($n>=18&&$n<=50)
            {
                $this->$n = $v;
            }
        }
        else
        {
            $this->$n = $v;
        }
    }
    //魔术方式,取变量值
    function __get($n)
    {
        return $this->$n;
    }
    //以下此方法仅适用于一个或者两个变量
    /*function setAge($n)
    {
        if($n>=18&&$n<=50)
        {
            $this->age=$n;
        }
    }
    function getAge()
    {
        return $this->age;
    }    */
}
$r=new Ren();
$r->__set("age",20);
$r->age=20;
$r->name="张三";
var_dump($r);

2.继承
子类可以继承父类的一切(除了私有成员之外)
特点:单继承
class Ren
{
    private $name;
    function Run()
    {
        echo "跑步:<br>";
    }
}
class China extends Ren //extends继承自谁
{
    //重写override
    function Run()
    {
        parent::Run();
        echo "中国人跑步";
    }
}
$c=new China();
$c->Run();
var_dump($c);

3.多态(弱类型语言实现不了多态)
定义:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,该引用在调用方法的时候所表现出的不同

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:在PHP中,将一个汉字数组按照拼音首字母进行排序

下一篇:Yii2 关于yii\db\Connection::open耗时很久的问题(1000ms左右)