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

    ---恢复内容开始---

    面向对象三大特性
      a封装
      目的:为了让类更安全
        1.将成员变量变为private
        2.在类里面做一个成员方法来间接访问
        3.在该方法里面加限制条件

    class Ren{
        public $name;
        public $sex;
        public $birthday;
        private $age;                   //将$age变量变为private
        public function setage($age){   //做一个方法间接访问年龄$age
            if($age>=18 && $age<=50){   //限制条件:18-50岁之间
                $this->age = $age;
            }
        }
        public function getage(){
            return $this->age;
        }
        
        public function __set($name,$value){     
            if($name=="age"){
                if($value>=18 && $value<=50){
                    $this->$name = $value;
                }
            }else{
                $this->$name = $value;
            }
            
        }
        
        public function __get($name){
            return $this->$name;
        }
    }
    $r = new Ren();
    $r->name = "张三";
    $r->age = 20; //自动调用魔术方法__set
    echo $r->age; //自动调用魔术方法__get
    var_dump($r); 

      b继承
      概念:子类可以继承父类的一切’
      特点:单继承->一个父类可以有多个子类,一个子类只能有一个父类

    class Ren{
        public $name;
        public $sex;
        public function say(){
            echo "人在讲话";
        }
    }
    class China extends Ren{
        public $yuyan;
        //函数重写  override
        //重载  overload
        public function say(){  //函数重写
            //调用父类里面的方法
            parent::say();
            echo "你好";
        }
    }
    
    $c = new China();
    $c->say();
    class Suan{
        public $a;
        public $b;
        public function yunsuan(){
        }
    }
    //父类规定了一个运算方法,在子类Jia中进行了重写
    class Jia extends Suan{
        public function yunsuan(){
            return $this->a+$this->b;
        }
    }

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

      运行多态  
      编译多态 overload

  • 相关阅读:
    ABP Xunit单元测试 第五篇
    ABP 异常处理 第四篇
    ABP Quartz 作业调度第三篇
    ABP 权限拦截 第二篇
    ABP .NET corej 版本 第一篇
    Vue生命周期
    vue中的import、export、requre的区别
    ES6最新语法
    Vux项目搭建
    对象克隆
  • 原文地址:https://www.cnblogs.com/rose1324/p/8295135.html
Copyright © 2011-2022 走看看