作者:手机用户2502914287 | 来源:互联网 | 2020-09-05 10:15
traits与interfaces的区别是:1、trait类似于include,可以用use放在类中间,定义的方法作为class的一部分,本身不能直接实例化;2、interface里面的方法都是虚拟的,需要在继承的时候对这些方法进行重定义。
traits与interfaces的区别是:1、trait类似于include,可以用use放在类中间,定义的方法作为class的一部分,本身不能直接实例化;2、interface里面的方法都是虚拟的,需要在继承的时候对这些方法进行重定义。
traits与interfaces的区别是:
1、trait
看上去更像是为了代码的复用而写的一个小插件,它类似于include,可以用use放在类中间,让trait里面定义的方法作为class的一部分,本身不能直接实例化。
2、interface
里面的方法都是虚拟的,需要在继承的时候对这些方法进行重定义。也就是说,方法是说明性质的,并没有实际操作,而你在继承的时候,需要实现这些方法,不然就会出错,而且不能缺失。interface经常用于架构的时候,对一个实例所拥有的属性和方法进行抽象定义。简单来讲类似一个协议,是老板下达的任务。你要继承的话,必须满足这个协议,也就是完成老板下达的任务。
var."";
}
function a()
{
echo "a"."";
}
}
interface MyInterface
{
function __construct();
function b();
}
abstract class MyAbstract
{
protected $var2 = 'MyAbstract_var';
use MyTrait;
function b()
{
echo "b"."";
}
}
class MyClass extends MyAbstract implements MyInterface
{
protected $var3 = 'MyClass_var';
function c()
{
echo "c"."";
}
}
$class = new MyClass();
$class->a();
$class->b();
$class->c();
以上代码中,MyAbstract中的function b()
也可以放在MyClass
中,或者由MyAbstract实现接口MyInterface
相关学习推荐:PHP编程从入门到精通
以上就是traits与interfaces有什么区别?的详细内容,更多请关注 第一PHP社区 其它相关文章!