// =笔记部分1=
/*
重写/覆盖 override
指:子类重写了父类的同名方法
重载 overload
重载是指:存在多个同名方法,但参数类型/个数不同
但是在PHP中,不允许存在多个同名方法,
因此无法实现java、c++中这种重载效果.
*/
// =代码部分1=
class Human {
public function say($name) {
echo $name,'吃了吗<br >';
}
}
class Stu extends Human {
public function say() {
echo '切克闹<br >';
}
}
$ming = new Stu();
$ming->say();
$ming->say('张三');
// =代码部分2=
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 >';
对比java中的重写与重载
public class OverTest
{
public static void main(String[] args)
{
Calc Calc = new Calc();
System.out.println(calc.area(10));
System.out.println(calc.area(5,8));
}
}
class Calc
{
public double area(float r)
{
return 3.14 * r * r;
}
public int area(int width,int height)
{
return width*height;
}
}