看表格看不懂的,请回顾一下前三篇文章,这是一份总结表。通过对比更直观。 - Class Interface Trait 目的 封装一类对象的属性和行为。 抽象一类对象的行为准则,而不关注其具体实现。 解决单继承的限制。(历史解决方法是使用混入类(Mixin)) Class class Cla

看表格看不懂的,请回顾一下前三篇文章,这是一份总结表。通过对比更直观。
| - | Class | Interface | Trait |
|---|---|---|---|
| 目的 | 封装一类对象的属性和行为。 | 抽象一类对象的行为准则,而不关注其具体实现。 | 解决单继承的限制。(历史解决方法是使用混入类(Mixin)) |
| Class | class ClassA extends ClassB | class Class implements Interface |
class Class { use Trait; } |
| Interface | - | Interface1 extends Interface2 | - |
| Trait | - | - |
trait Trait1 { use Trait2; } |
| *注:以上是三者可使用的关系,以下是其具体区别! | |||
| abstract | 类前(抽象类),方法前(抽象方法) | - | 方法前(抽象方法) |
| final | 类前(不可继承),方法前(不可重写) | - | 方法前(不可重写) |
| const | 有类常量 | 有接口常量 | - |
| static | 静态变量,静态方法 | 静态方法 | 静态变量,静态方法 |
|
访问控制 public protected private |
继承可改变访问控制 实现接口只能用public use Trait可以用as改变访问控制。 |
- | use Trait可以用as改变访问控制 |
| 同名变量 |
覆盖(extends Class) 报错(use Trait) |
- | 报错(use Trait) |
| 同名方法 |
覆盖(extends) 报错(use Trait) 可用insteadof或as解决 |
报redeclare错(extends Interface) | 报错(use Trait) 可用insteadof或as解决 |
| *注:静态成员变量/函数与普通成员变量/函数的命名不可一样,不然会报错。 | |||
( 完 )
建站之星网站建设系统是一种全新的互联网应用模式,它一改过去传统的企业建站方式,不需企业编写任何程序或网页,无需学习任何相关语言,也不需第三方代写或管理网站,只需应用系统所提供的各种强大丰富的功能模块,即可轻松生成企业个性化的精美网站。 SiteStar v2.3本地软件体验包说明:为方便客户能够第一时间体验智能建站软件的强大功能,我们特别提供了本地软件体验包,您只需下载下来并安装在您的计算机上(和
0
版权所有:老白经 转载请保留来源信息。 区别>>
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号