聊城万拓网络科技-专业聊城网站建设、聊城网站制作、聊城网站优化、聊城做网站的品牌网站建设专家!

    您当前的位置是:首页 - 新闻动态 - 网站建设 » PHP中子类中重载父类的方法

    PHP中子类中重载父类的方法
     发布时间:2014-05-08  点击次数: 次   作者:  来源:  Tags:

        在PHP中不能定义重名的函数,也包括不能在同一个类中定义重名的方法,
    载。但在子类中可以定义和父类同名的方法,因为父类的方法已经在子类中存在,
    把从父类中继承过来的方法重写.
    所以也就没有方法重
    这样在子类中就可以
        子类中重载父类的方法就是在子类中覆盖从父类中继承过来的方法,父类中的方法被子类继承过来
    不就可以直接使用吗?为什么还要重载呢?因为有一些情况是我们必须要扭盖的。例如.有一个“鸟”
    类,在这个类中定义了鸟的通川方法“飞翔”。将“鸵鸟”类作为它的子类,就会将“飞翔”的方法继
    承过来,但只要一调用“鸵鸟”类中的这个“飞翔”方法,鸵鸟就会飞走。虽然鸵鸟是不会飞的,但其
    他特性都具有“鸟”类的特性,所以在声明“鸵鸟”类时还是可以继承“鸟”类的,但必须在“鸵鸟即
    类中将从“鸟”类中继承过来的“飞翔”方法改写,就需要在子类中重载父类中的方法。
        在下面的例子中,声明的Person类中有一个“说话”方法,Student类继承Person类后可以直接使
    用“说话”方法。但Person类中的“说话”方法只能说出它自己的成员属性,而Student类对Person
    类进行了扩展,多添加了几个新的成员属性。如果使用继承过来的“说话”方法,也只能说出从Person
    类中继承过来的成员属性。而如果在子类Student中再定义一个新的方法用于“说话”,则一个“学生”
    就有两种“说话”的方法,显然不太合理。所在在Student类中也定义了一个和它的父类Person中同名
    的方法,将其覆盖后重写。代码如下所示:
    //声明一个人类.定义人所具有的一些其本的属性和功能成员,作为父类
    滋飞,
    <?php
        class Person{          protected Sname;
              protected Ssex;
              protected匀唱.;
    //声明一个存储人的名字的成员
    11声明一个存储人的性别的成员
    //声明一个存储人的年龄的成员
    function we  construct(Sname-.’ , Ssex.-男.,Sage川
          $山运>name一Sname;
          Sthis->sex - Ssex;
        Sthis->age - Sage;

    //构造方法用来创建对象并初始化成员属性
    I/为成员属性name在创建对象时斌初值
    11为成员属性sex在创建对象时赎初值
    //为成员属性ag.在创建对象时从初值
    function say(){
    刀在人类中声明一个通用的说话方法,介绍一下自己
    echo“我的名字叫:".Sthis-)'name.:性别:".Sthis->sex.".我的年龄是:".Sthis-:w,.". b";
    class Student extends Person
        private Sschool;
    11声明一个学生类,使用extends关镇字扩展(继承)Person类
    //在学生类中声明一个所在学校schoo】的成员属性
    //砚盖父类中的构造方法.在参数列表中多添加一个学校属性,用来创建对象井初始化成员属性
    function es  construct(Sname-"", Ssex-"男一,Sage-l, $school-"")《
        Sthis->name - Snarne;          N为成员属性name在创建对象时从初值
    Sthis->sex - Ssex;
    Sthis->age - Sage.
    Sthis->school=$school;
    11为成员属性sex在创建对象时斌初值
    //为成员属性as.在创建对象时从初值
    //多添加一条为子类中折扩展的成员属性从初值
    function study()《
    刀在学生类中声明一个学生可以学习的方法
    echo Sthis->nam‘一正在".Sthis->school."学习‘肠夕,;
    二定义一个和父类中同名的方法,将父类中的说话方法。,井重写,多说出所在的学。名称
    functi黑准品名字叫:".Sthi‘二.。.性别:" Sthis->sex ".,的年龄是:".Sthia->age.".在:Sthis->achool."
    学校上学劝户N;
              》
          }
    Sstudent new Studen叹一张三…男一,20二edu");
    Sstudent->sayO;
    //创建一个学生对象,井多传一个学校名称参数
    //调用学生类中扭盖父类的说话方法



    分享到:
    上一篇:LAMP网站开发组合概述
    下一篇:JS如何实现电脑访问进入电版版网站,手机访问进入手机版网站
     

    本站业务:聊城网站建设-聊城网站制作-聊城做网站