方法重载和方法重写

重载
在一个类的定义中,可以编写几个同名的方法,但是只要他们的参数个数不同,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个参数的调用
未知的参数调用
 */

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

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容