重写/覆盖 override
指子类重写了父类的的同名方法
重载: overload:
存在多个同名方法,但参数类型/个数不同
传不同的参数,调用不同的方法
但在PHP中,不允许存在多个同名方法,
因此,不能完成java,c++中的这种重载
但是,PHP的灵活,能达到类似的效果
<?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 "哥仨好";
// }
}
$ming = new Stu();
$ming->say(); //上面这个过程叫重写
$ming->say('李四');
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);
//计算矩形的面积
echo $calc->area(10,5);
//计算未知的面积
echo $calc->area();