面向对象的三大特性

1.封装

  目的:是为了使类更加安全

   步骤:

  1. 将成员变量变为私有
  2. 做一个成员方法直接访问
  3. 在该方法里面加限制条件   

方法一:class ren

    {

      if($n>=18&&$n<=50)

      {

        $this->age=$n;

      }

    }

      function getAge()

      {

        return $this->age;

      }

$r=new ren();

$r->setAge (20);

echo $r->getAge();

方法二: .net中会有成员属性,但php中没有,php采用魔术方法来解决第一种方法中存在的问题。

  class  ren

  {

    private $name;

    private $age;

赋值  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;

    }  

    }

  }

$r=new ren();

$r->__set("age",12)  

2.继承

  子类可以继承父类的一切

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

  class ren                                                                              class china extends ren

    {                                                                                          {             

      private $name;                                                                          function run()

      function run()                                     既想调用子类又想调用父类时 {

                                                                                                                     parent::run()                                                                                                                                                                                                      echo"中国人跑步"

                                                                                                           }

 

     {                                                                                           }

      echo "跑步";

    }

  }   

3.多态

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

   

posted @   小牛吃青草  阅读(125)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示