zoukankan      html  css  js  c++  java
  • php面向对象三大特性

    1.封装:

    目的:使类更加安全

    步骤:
    1、成员变量变成private(私有的)
    2、设置方法/调用方法
    3、在方法中增加限制

    <?php
    class shao
    {
        private $aa;//必须是私有的
        private $bb;
        public function set_aa($v)
        {
            $this->aa = $v;
        }
        public function get_aa()
       {
        return $this->aa;//给aa一个返回值
       }
       public function set_bb($v)
       {
           if($v>0&&$v<188)//给bb增加加一条限制
           {
               $this->bb=$v;
           }
       }
    }
    $shili = new shao();
    $shili->set_aa('李');
    //var_dump($shili);
    //echo $shili->get_aa();
    $shili->set_bb(20);
    var_dump($shili);
    ?>

    魔术方法:

    <?php
    class shao
    {
        private $aa;
        private $bb;
        function __set($name, $value)
        {
            // TODO: Implement __set() method.
            if($name == 'bb')
            {
                if ($value>0&&$value<188)
                {
                    $this->$name = $value;
                }
            }
    
        }
        function __get($name)
        {
            // TODO: Implement __get() method.
            return $this->$name;
        }
    }
    $shili = new shao();
    $shili->__set('bb',8);//bb放到set的name里面,着个参数是可变的
    echo $shili->__get('bb');//取bb
    ?>

    2.继承:

    子类与父类的属性与方法
    子类继承父类的所有内容,但父类中的private部分不能直接访问
    子类中新增加的属性和方法是对父类的扩展
    子类中定义的与父类同名的属性是对父类属性的覆盖,同名的方法也是对父类方法的覆盖

    <?php
    class  shao
    {
        public function sasa($name){
            echo $name,'狗!<br/>';
        }
    }
    class zhen extends shao{
        public function aaa()
        {
            echo '猫<br/>';
        }
    }
    $lli = new zhen();
    $lli->aaa();
    $lli->aaa('binghh');
    ?>

    重写方法,详细见php面向对象中的重写与重载**

    3.多态:

    当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同,称为多态

    多态性是指在父类中定义的属性或行为被子类继承之后,

    可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在父类及其各个子类中具有不同的语义。
    就是说同一种方法在子类与父类中执行的结果不同。

    条件:
    1.要有继承
    2.父类引用指向子类实例
    3.要有重写
    4.调重写的方法

    **************编译多态********************

    可以使类里面的某个方法产生多种效果,根据传入的参数不同,可以执行不同的逻辑

    <?php
    class fu
    {
        public function text(){
            echo '父类';
        }
        public  function  textt(){
            echo '父亲';
        }
    }
    class erzi extends fu
    {
    
            function test($name)
            {
                //方法重载
                parent::text();//我要父类的东西
                echo "erzi",$name;//重写
    
            }
        }
    
    $erzi = new fu();
    $erzi-> text("123");
    ?>

    以上是重载方法,详细见php面向对象中的重写与重载**

  • 相关阅读:
    AJAX聊天室小DEMO(讨厌JS,IE下有问题已解决)
    [ZT]线索二叉树(C#数据结构五)
    栈(C#数据结构学习二)
    eclipse 安装 resin 3 步骤
    解决全局utf8编码下asp.net接收gb2312乱码的问题
    模板里的控件要用FindControl(id)方法读取
    OpenSessionInView
    asp:button控件调用js函数不刷新方法
    OFFICE 出现“正在配置”的解决方法
    开发经验
  • 原文地址:https://www.cnblogs.com/xuan584521/p/6395923.html
Copyright © 2011-2022 走看看