温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP面向对象之方法的重写or重载

发布时间:2020-05-28 02:28:18 来源:网络 阅读:694 作者:小小应 栏目:web开发
<?php /***  ====笔记部分====  重写/覆盖  override  指:子类重写了父类的同名方法  重载: overload  重载是指:存在多个同名方法,但参数类型/个数不同.  传不同的参数,调用不同的方法  但是在PHP中,不允许存在多个同名方法.  因此,不能够完成java,c++中的这种重载  但是,PHP的灵活,能达到类似的效果  ***/  /****  代码部分  ****/  class human{   public function say($name){    echo $name,' 吃了吗?<br />';   } } class stu extends human{   public function say(){    echo '切克闹,卡猫百比<br />';   }   /*   public function say($a,$b,$c){    echo '哥仨好';   }   报错:   Fatal error: Cannot redeclare stu::say() in D:\wamp\www\php\61.php on line 28   在PHP中,不允许存在多个同名方法,没有重载不能和java,c++一样概念这一说。   */ } $li=new stu(); $li->say(); $li->say('binghui');// 上面这个过程叫重写override! java中有 /* 结果: 切克闹,卡猫百比 切克闹,卡猫百比 */ //在PHP中模拟重载的方法 class Calc {      public function area() {          // 判断一个调用area时,得到的参数个数          $args = func_get_args();          if(count($args) == 1) {              return 3.14 * $args[0] * $args[0];          } else if(count($args) == 2) {              return $args[0] * $args[1];          } else {              return '未知图形';          }      }  }  $calc = new Calc();  // 计算圆的页面  echo $calc->area(10),'<br />';  // 计算矩形的面积  echo $calc->area(5,8); ?>


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI