重写/覆盖 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();