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 }

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

posted on 2012-11-10 16:37  php1994  阅读(1389)  评论(2编辑  收藏  举报

导航