重载
在一个类的定义中,可以编写几个同名的方法,但是只要他们的参数个数不同,java就会将他们看做唯一的方法。
php中不支持方法重载。但是可以模拟类似java中的方法重载
/*php模拟java的方法重载*/
class Person
{
public function test()
{
//echo "参数个数:" . func_num_args(); //获取方法调用时的参数个数
//print_r(func_get_args()); //获取方法调用时的参数值,返回的是一个数组
$args = func_num_args();
$args_arr = func_get_args();
switch ($args) {
case 0:
echo "没有参数的调用<br>";
break;
case 1:
echo "0个参数的调用<br>";
break;
case 2:
echo "2个参数的调用<br>";
break;
default:
echo "未知的参数调用<br>";
break;
}
}
}
$DaiYu = new Person();
$DaiYu->test();
$DaiYu->test(23);
$DaiYu->test('gasg','2.2');
$DaiYu->test('gasg','2.2',333);
/*
没有参数的调用
0个参数的调用
2个参数的调用
未知的参数调用
*/
重写
重写就是子类重写父类的方法,重写的方法不能使用比父类更严格的访问权限;子类可以拥有与父类不同的参数数量;构造函数重写