您好,欢迎访问一九零五行业门户网

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

看表格看不懂的,请回顾一下前三篇文章,这是一份总结表。通过对比更直观。 - 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解决
*注:静态成员变量/函数与普通成员变量/函数的命名不可一样,不然会报错。
( 完 )
版权所有:老白经 转载请保留来源信息。 >
其它类似信息

推荐信息