zoukankan      html  css  js  c++  java
  • 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 }

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

  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/4php/p/2764163.html
Copyright © 2011-2022 走看看