php面向对象之三大特性

面向对象的三大特性是封装,继承和多态。

一.封装

封装的目的是为了让类变得更加安全,因为外界不能直接访问和修改类里面的变量、属性。

封装的做法

1.将类中的变量私有化(即变量的访问修饰符为private)

2.做一个成员方法来简介访问

3.在该方法中加入限制条件

 

例:

    class Ren
          {
            private $age; //    让成员变量私有
            private $name;

           
         

       function setAge($n)        //定义成员方法,用来让外界调用
            {
              if($n>=18 && $n<=50)
                {
                  $this->age = $n;
                  }
                    }
              function getAge()
                  {
                  return $this->age;
                      }*/
            }
      $r = new Ren();    
      
      $r->age = 20;
      $r->name = "zhangsan";
      echo $r->name;

二、继承

继承就是子类继承父类的一切,使用extends关键字,只能单继承(就是子类只能有一个父类,但一个父类可以有多个子类)

例    class Ren            //定义一个父类
  {
    private $name;

    function Run()        //父类的成员方法
        {
        echo "跑步";
          }
      }
    class China extends Ren      //定义一个子类China,继承于父类Ren ,中间用了关键字extends,并且继承到了父类的一切。
        {
          //重写 override
          function Run()      //子类中出现了和父类的同名函数,子类重新定义函数的功能 ,叫做重写(override)
            {
          parent::Run();  //如果想继续调用父类的重名函数,可以使用parent::的方法来调用。会同时执行父类和子类的方法。
           echo "中国人跑步";
            }
          }
    $c = new China();
    $c->Run();

三、多态

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

php属于弱类型语言,多态的表达不明显,但是在强类型语言中可以运用多态

posted @ 2017-04-18 22:26  雾若晨曦  阅读(344)  评论(0编辑  收藏  举报