看表格看不懂的,请回顾一下前三篇文章,这是一份总结表。通过对比更直观。 - 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解决 |
*注:静态成员变量/函数与普通成员变量/函数的命名不可一样,不然会报错。 |
( 完 )
版权所有:老白经 转载请保留来源信息。 >
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
2 周前ByDDD
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver CS6
视觉化网页开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中