类中的公共或外部代码主要来源:自
1:父类 单一继承,一个子类只能继承一个父类,使用关键字extends
2: trait类(方法集) 多继承,一个子类可以继承多个 trait类,使用关键字use
<?php
//trait类还可以互相嵌套
//1.创建个trait类TestI
trait Test1
{
public function hello()
return 'Test1::hello()';
}
}
/12.创建一个trait类Test2
trait Test2
{
public function hello()
{
return 'Test2::hello()';
}
}
//3.创建类Demo
class Demo
{
use Test1, Test2{
//用Test1: :hello()替换Test2: :hello()
Test1: :hello insteadof Test2;
//用别名访问Test2: :hello方法
Test2::hello as test2Hello;
}
}
// 测试
$obj = new Demo;
echo $obj->hello();
echo '<hr>' ;
echo $obj->test2Hello(); //test2Hello 是Test2: :hello()方法的别名
trait类不能被实例化,只能被子类引用,使用use关键字
使用use关键字,可以导入多个trait类
出现同名方法时,子类优先级大于trait类,trait类优先级大于父类。
|