这里是一个大流量的地方!欢迎土豪来做链接
面向对象 php 重载 发帖-php.教程
标题:面向对象 php 重载
作者:composer @Ta
时间:2019-07-28 18:28
点击:199
PHP 重载
一个类中的方法与另一个方法同名,但是参数不同,这种方法称之为重载方法。
很遗憾因为 PHP 是弱类型的语言, 所以在方法的参数中本身就可以接收不同类型的数据,又因为 PHP 的方法可以接收不定个数的参数,所以在 PHP 里面没有严格意义上的方法重载。
PHP 中的重载是指在子类里面定义了一个和父类同名的方法,且该方法将在子类中将把父类的方法覆盖。
在子类中,因为从父类继承过来的方法可能无法访问子类定义的属性或方法,所以有时候重载是必要的。
例子:
  1. <?php
  2. class Person {
  3.     var $name;
  4.     var $age;
  5.  
  6.     function say() {
  7.         echo "我的名字叫:".$this->name."<br />";
  8.         echo "我的年龄是:".$this->age;
  9.     }
  10. }
  11.  
  12. // 类的继承
  13. class Student extends Person {
  14.     var $school;    //学生所在学校的属性
  15.        
  16.     function say() {
  17.         echo "我的名字叫:".$this->name."<br />";
  18.         echo "我的年龄是:".$this->age."<br />";
  19.         echo "我正在".$this->school."学习";
  20.     }  
  21. }
  22.  
  23. $t1 = new Student();
  24. $t1->name = "张三";
  25. $t1->age = "18";
  26. $t1->school = "人民大学";
  27. $t1->say();
  28. ?>

运行该例子,输出:
我的名子叫:张三
我的年龄是:18
我正在人民大学学习
提示
如果父类定义方法时使用了 final 关键字,则不允许被子类方法覆盖。
访问父类被覆盖的方法
可以通过 :: 符号来访问父类被覆盖的方法或成员属性:
  1. function say() {
  2.     parent::say();
  3.     //或者
  4.     Person::say();
  5.     echo "我在".$this->school."上学<br />";
  6. }

回复列表
没有回复,快来抢沙发吧!


论坛-首页-留言
08-23 12:31
执行用时:0.022秒
[聊天-公众聊天室]作曲:我的前端是真的烂……
All Powered by zl88.net