Rumah  >  Artikel  >  php教程  >  类、接口、特性三者之间的关系和区别

类、接口、特性三者之间的关系和区别

WBOY
WBOYasal
2016-06-06 20:12:171466semak imbas

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

PHP LOGO

看表格看不懂的,请回顾一下前三篇文章,这是一份总结表。通过对比更直观。

- 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解决
*注:静态成员变量/函数与普通成员变量/函数的命名不可一样,不然会报错。

( 完 )

版权所有:老白经 转载请保留来源信息。 >

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP命令行下模拟Session机制Artikel seterusnya:PHP中类及其继承关系