首頁 >php教程 >php手册 >类、接口、特性三者之间的关系和区别

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

WBOY
WBOY原創
2016-06-06 20:12:171490瀏覽

看表格看不懂的,请回顾一下前三篇文章,这是一份总结表。通过对比更直观。 - 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解决
*注:静态成员变量/函数与普通成员变量/函数的命名不可一样,不然会报错。

( 完 )

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn