您的位置:首页 > 编程语言 > PHP开发

PHP面向对象之重写与重载-129

2014-08-19 11:55 295 查看
<?php
//01.php
/****
燕十八 公益PHP讲堂
论  坛: http://www.zixue.it 微  博: http://weibo.com/Yshiba YY频道: 88354001
****/
/***
====笔记部分====
重写/覆盖  override
指:子类重写了父类的同名方法
重载: overload
重载是指:存在多个同名方法,但参数类型/个数不同.
传不同的参数,调用不同的方法
但是在PHP中,不允许存在多个同名方法.
因此,不能够完成java,c++中的这种重载
但是,PHP的灵活,能达到类似的效果
比:如用func_get_args()函数可以做到
***/
/****
代码部分
****/
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 '哥仨好';
}
*/
}
$ming = new Stu();
$ming->say();
$ming->say('张三');  // 上面这个过程叫重写override!
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);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: