欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-05-18 12:36:39
...

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

( 完 )

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