旗下导航:搜·么
当前位置:网站首页 > PHP问题 > 正文

php重载和重写的区分是什么?【php题目】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP问题浏览:112


导读:重写:就是当子类继续父类的一些要领后,子类又在其内部定义了雷同的要领,则这个新定义的要领会掩盖继续而来的父类的要领,子类只能挪用其内部定义的要领。有以下几点请求:1...

重写:

就是当子类继续父类的一些要领后,子类又在其内部定义了雷同的要领,则这个新定义的要领会掩盖继续而来的父类的要领,子类只能挪用其内部定义的要领。

有以下几点请求:

1.当一个父类和子类有一个要领,参数和名字完全一致,那末子类要领会掩盖父类的要领

必需参数一致,才会完成要领掩盖。当参数个数不一致,则会报错(这就牵涉到上面说所得要领重载)。当要领名字不一致,就不会掩盖,只是子类新定义的要领。

2.在实行要领掩盖的时刻,接见修饰符可所以不一样的,然则子类的接见局限必需大于即是父类的接见局限

这是php这些言语设计时的划定吧。我是这么明白的是接见高一层的东西比较轻易,假如再去接见底层的东西权限一定要高一些。

请求参数和名字一样。并非请求子类,父类称号雷同。

是请求参数和名字一样,细致就是请求参数的个数与父类雷同,而并非参数称号一致。即通报的参数名字可认为恣意,只需保证通报的个数雷同即可。

看代码:

<?php
class  shao
{
    public function sasa($name){
        echo $name,'狗!<br/>';
    }
}
class zhen extends shao{
    public function aaa()
    {
        echo '猫<br/>';
    }
}
$lli = new zhen();
$lli->aaa();
$lli->aaa('binghh');
?>
<?php
class fu
{
    public function text(){
        echo '父类';
    }
    public  function  textt(){
        echo '父亲';
}
}
class erzi extends fu{
    public function text()
    {
        parent::text();//我要父类的东西
        echo '儿子';//重写

    }
}
$shili = new fu();
$erzi = new erzi();
$erzi->text();
?>

重载:

重载是类的多态的一种完成。函数重载指一个标识符被用作多个函数名,且能够经由过程函数的参数个数或参数范例将这些同名的函数辨别开来,挪用不发生殽杂。即当挪用的时刻,虽然要领名字雷同,但依据参数的差别能够自动挪用响应的函数。

php不好完成。

能够使类内里的某个要领发生多种结果,依据传入参数差别,能够实行差别的逻辑。

有以下几点请求:

1、在运用重载时只能经由过程雷同的要领名、差别的参数情势完成。差别的参数范例可所以差别的参数范例,差别的参数个数,差别的参数递次(参数范例必需不一样);
2、不能经由过程接见权限、返回范例、抛出的非常举行重载;
3、要领的非常范例和数量不会对重载形成影响;

<?php
class fu
{
    public function text(){
        echo '父类';
    }
    public  function  textt(){
        echo '父亲';
    }
}
class erzi extends fu
{

        function test($name)
        {
            //要领重载
            parent::text();//我要父类的东西
            echo "erzi",$name;//重写

        }
    }

$erzi = new fu();
$erzi-> text("123");
?>

重写只存在于子类与父类中,重载存在于一个类中。

override是重写

overload是重载

关于重写和重载的更多内容,请接见ki4网:PHP视频教程

以上就是php重载和重写的区分是什么?的细致内容,更多请关注ki4网别的相干文章!

标签:php重载重写区别