php面向对象多继承实现

发布于:2021-12-08 08:39:39

在PHP面向对象概念编程中,一个子类只能继承一个父类,但是从php5.4后新增traits实现代码复用机制变向达到多继承。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。

1、trait和类相似,但不能被实例化,无需继承,只需要在类中使用关键词use引入即可,可引入多个traits,用','隔开
2、trait会覆盖继承的方法,当前类会覆盖trait方法

<?php  
class People{  
    public function walk(){  
        echo "步行....";  
    }  
    function say(){  
        echo "说话<br/>";  
    }  
}  
trait Woman{
    public function eat(){  
        echo "女人吃饭<br/>";  
    }  


    public function dance(){  
        echo "女人跳舞<br/>";  
    }  
}
trait Man{  
    public function walk(){  
        parent::walk();
        echo "继续步行...<br/>";  
    }  

    public function say(){  
        echo "男人说话<br/>";  
    }  
    public function sing(){  
        echo "男人唱歌<br/>";  
    }  
}  
  
class Child extends People{  
    use Man,Woman;  
      
    public function sing(){  
        echo "小孩唱歌<br/>";  
    }  
    public function dance(){  
        echo "小孩跳舞<br/>";  
    }  

}  
  
$obj=new Child();  
$obj->walk();  
$obj->eat();  
$obj->say();  
$obj->sing();  
$obj->dance();


https://www.cnblogs.com/wt645631686/p/8325884.html

阅读 231+

一片空白

父爱如山,不善表达。回想十多年前,总记得父亲有个宽厚的肩膀,小小的自己跨坐在上面,越过人山人海去看更广阔的天空,那个时候期望自己有一双翅膀,能够像鸟儿一样飞得高,看得远。虽然父亲有时会和自己开玩笑,但在做错事的时候会受到严厉的训斥。父亲有双粗糙的大手掌。