方法重载和方法重写

重载
在一个类的定义中,可以编写几个同名的方法,但是只要他们的参数个数不同,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 "没有参数的调用
"; break; case 1: echo "0个参数的调用
"; break; case 2: echo "2个参数的调用
"; break; default: echo "未知的参数调用
"; break; } } } $DaiYu = new Person(); $DaiYu->test(); $DaiYu->test(23); $DaiYu->test('gasg','2.2'); $DaiYu->test('gasg','2.2',333); /* 没有参数的调用 0个参数的调用 2个参数的调用 未知的参数调用 */

重写
重写就是子类重写父类的方法,重写的方法不能使用比父类更严格的访问权限;子类可以拥有与父类不同的参数数量;构造函数重写

你可能感兴趣的:(方法重载和方法重写)