• PHP面向对象三大特性


    一、封装,保证类的安全和稳定,理论上类里的成员变量都要封装,封装的步骤是

      第一步,将成员变量变为private,

      第二步,在类里面做一个成员方法间接访问,

      第三步,在该方法里面加限制条件,

    class Ren{
        public $name;
        public $sex;
        public $birthday;
        private $age;    
        public function setage($age){
            if($age>=18 && $age<=50){
            $this->age = $age;
            }
        }
    }

        以上例子是要求年龄在18到50之间,

      封装一般用魔术方法set做,如

    class Ren{
        public $name;
        public $sex;
        public $birthday;
        private $age;    
            public function __set($name,$value){    //$name代表成员变量名,$value代表成员变量值,在这里都形参,没有实际意义,参数是在调用封装变量时自动获取传入的
              if($name=="age"){
                  if($value>=18 && $value<=50){
                      $this->$name = $value;    
                }    
            }
        }
    }    

        如此封装的成员变量调用时方法不变,但是已经封装好,所以只有在类里面才能看出是否封装

    二、继承,子类可以继承父类的一切,

        特点:单继承,一个子类只能有一个父类,一个父类可以有多个子类,

        函数重写 override:子类可以对父类的函数进行重写,在子类写一个与父类函数名相同的函数,然后重写即可

        重载 overload 一般在强类型语言出现 ,一个方法可以实现多种功能,函数名一样,但是参数不同,参数不同可以在于个数也可以在于参数的类型,

    class Ren{                    //创建人的类
        public $name;
        public $sex;
        public function say(){    //父类的方法
            echo "哈哈";    
        }
    }
    class China extends Ren{    //创建中国人的类,属于人的子类
        public $yuyan;
        public function say(){  //函数重写
            //调用父类的方法,形式上的调用,这样可以同时执行父类的函数和子类的函数
            parent::say();
            echo "你好";    
        }    
    }
    $r = new China();
    $r->say();

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

      多态一般出现在强类型语言中,

      运行多态,指代码运行中出现的多态

      编译多态,指编写代码时就指定好的多态,就是重载。

      

        

  • 相关阅读:
    JAVA中添加jar包
    shell 脚本读取数据库示例
    Div 布局之 DIV垂直居中显示
    awk 学习笔记
    提示ufmyhr日志已满,无法继续操作软件,如何解决
    12种貌似卫生的不卫生习惯
    远程通客户端反复提示要下载客户端软件
    固定资产反启用后再启用报00:00:00错误
    2008年5月14日
    睡前六个必要动作,一觉睡到大天亮
  • 原文地址:https://www.cnblogs.com/zxbs12345/p/8243349.html
Copyright © 2020-2023  润新知