trait 和abstract的区别在哪里、
感觉没区别呢,实在没想出来在那种场景下会有区别
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
感觉没区别呢,实在没想出来在那种场景下会有区别
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
无法在一个class上extend多个abstract class,但是你可以use多个trait
abstract class是在类型系统上做文章,trait片段是mixin
1.php是只支持单继承,不支持多继承
2.abstract相对trait粒度更细,适合将一个服务里的多个类共有的代码部分抽象出来,让子类继承。但是如果有两个服务模块或者多个服务模块有很多相似的代码,比如初始化redis驱动
可能项目中很多地方都会用到这段代码,如果将它写在抽象类中,也就是说大部分抽象类都要写这段代码,为了减少这个问题,就可以引入Trait的概念了
然后可以在使用的地方
这样可以让很多无关的类使用相同的代码,从而提高代码复用,符合DRY(Don’t Repeat Yourself)原则,达到多继承的目的
http://overtrue.me/articles/2...