<?php
//trait定义的特殊类可以实现多继承;但trait不是类,不能被实例化,只能做父类被继承
// 多继承的优先级为子类方法的重写最优先,
//继承trait的类比extends继承的类优先
// 父类同名可以取别名
trait Bo
{
public function index()
{
echo '菠萝赛东!';
}
}
trait Npc
{
public function index()
{
echo 'Npcccccccc!';
}
public function make()
{
echo __METHOD__;
}
}
class Ww
{
public function index()
{
echo '弯弯弯弯弯!';
}
}
//子类继承父类
class Nb extends Ww
{
//继承使用use;如果存在冲突可以使用取别名或者是指定使用哪一个方法, insteadof
use Bo, Npc {
//指定使用那个类的方法,这是是使用Npc类的index方法代替Bo类
Npc::index insteadof Bo;
//给Bo类的index方法加别名
Bo::index as index2;
}
// public function index()
// {
// echo 'Nbbbbbb!';
// }
}
//实例化子类
$obj = new Nb;
$obj->index();
$obj->make();
$obj->index2();
PHP面向对象之多继承
最新推荐文章于 2022-10-16 10:04:17 发布