• PHP重载方法


    1.重载 Overload

    子类改变父类的方法,为重载。

    重载是一种覆盖性行为,会将以前的方法覆盖掉。

    2.重载案例:

     1 <?php
     2 class EMBA_student  // 声明EMBA学生类
     3      {
     4          //用var来定义类的属性
     5          var $no; //序号
     6          var $name; // 姓名
     7          var $gender; //性别
     8          var $age; //年龄
     9          
    10          //方法
    11          //方法1 ,设定学生的信息方法
    12          function set_data ($arr)
    13          {
    14              $this->no=$arr["no"];
    15              $this->name=$arr["name"];
    16              $this->gender=$arr["gender"];
    17              $this->age=$arr["age"];
    18              }
    19          // 方法2, 让学生年龄长大$i岁
    20          function set_grow($i)
    21          {
    22              $this->age+=$i;
    23                          }
    24          //方法3 ,输出学生信息的方法
    25          function get_data()
    26          {
    27              echo "<br />
    28  <b>长江商学院EMBA班学生信息</b><br />
    29  ";
    30  
    31  echo"学号:$this->no<br />";
    32  echo"姓名:$this->name<br />";
    33  echo"性别:$this->gender<br />";
    34  echo"年龄:$this->age<br />";
    35              
    36              }
    37          }
    38  // 继承EMBA学生类,来创建一个EMBA方向类
    39      class college_student extends EMBA_student{
    40          var $department; //定义一个新的属性所在系
    41          function change_department($new_department) //定义一个新的方法,更换所在系
    42          {
    43              $this->department=$new_department; //让学员所在系变成参数系
    44              }
    45 //重载父类的方法,设定学员的信息
    46 function set_data($arr){
    47                  $this->no=$arr["no"];
    48              $this->name=$arr["name"];
    49              $this->gender=$arr["gender"];
    50              $this->age=$arr["age"];
    51              $this->department=$arr["department"];
    52     }         
    53          }
    54 //实例化一个对象
    55 $s=new college_student;
    56 $arr=array("no"=>"1","name"=>"Qian Zhang","gender"=>"Female","age"=>"33","department"=>"商业营销");
    57 $s->set_data($arr);
    58 // $s->department="商业营销"; 因为采用了函数的重载,所以不需要在这个地方为对象赋值了
    59 echo"该学员所在专业为:$s->department<br />";
    60 $s->change_department("哲学工商管理");
    61 echo"该学员所在专业为:$s->department<br />";
    62 $s->get_data();
    63 
    64 
    65 
    66  ?>

    结果:

    该学员所在专业为:商业营销
    该学员所在专业为:哲学工商管理

    长江商学院EMBA班学生信息
    学号:1
    姓名:Qian Zhang
    性别:Female
    年龄:33

    3.函数中,对数组键值的定义方式值得学习:

     1 class EMBA_student  // 声明EMBA学生类
     2      {
     3          //用var来定义类的属性
     4          var $no; //序号
     5          var $name; // 姓名
     6          var $gender; //性别
     7          var $age; //年龄
     8          
     9          //方法
    10          //方法1 ,设定学生的信息方法
    11          function set_data ($arr)
    12          {
    13              $this->no=$arr["no"];
    14              $this->name=$arr["name"];
    15              $this->gender=$arr["gender"];
    16              $this->age=$arr["age"];
    17              }
    18 }

    先定义属性,然后直接以[]来定义键名。 

  • 相关阅读:
    python 20 规范化目录
    python 19 包、logging模块
    python 17 Json、os、sys、hashlib等内置模块
    python 16 time、datetime、random模块
    python 15 带参装饰器
    python 14 装饰器
    [LeetCode]36. Compare Version Numbers版本号比较
    [LeetCode]35. Valid Parentheses有效括号
    [LeetCode]34. Add Binary二进制相加
    [LeetCode]33. Longest Palindromic Substring最长回文子串
  • 原文地址:https://www.cnblogs.com/4php/p/2764163.html
Copyright © 2020-2023  润新知