php 类总结和对比

extends基类
首先:PHP不支持多重继承,一个类只能继承一个基类
其次:被继承的方法和属性可以通过用同样的名字重新声明被覆盖。但是如果父类定义方法时使用了 final,则该方法不可被覆盖。可以通过 parent:: 来访问被覆盖的方法或属性(如果父类中的方法被声明为 final,则子类无法覆盖该方法。同样如果一个类被声明为 final,则不能被继承。需要注意的是: 属性不能被定义为 final,只有类和方法才能被定义为 final。)。
最后:当覆盖方法时,参数必须保持一致否则 PHP 将发出 E_STRICT 级别的错误信息。但构造函数例外,构造函数可在被覆盖时使用不同的参数
abstract抽象
首先:它是一个类,所以子类是extends它的类
其次:继承一个抽象类的时候,子类必须定义实现父类中的所有抽象方法(它还可以写普通方法)
再次:些方法的访问控制必须和父类中一样(或者更为宽松)(例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,而不能定义为私有的)
最后:方法的调用方式必须匹配,即类型和所需参数数量必须一致(但是:子类定义了一个可选参数,而父类抽象方法的声明里没有,则两者的声明并无冲突。)
interface 接口:
首先:指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
其次:方法定义必须是public型,这是接口的特性
再次:类中必须实现接口中定义的所有方法
最后:类可以实现多个接口,用逗号来分隔多个接口的名称
多态:
这篇文章http://www.cnblogs.com/tecs27/archive/2012/03/13/2394028.html比较好理解
instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例(多态中用到)
posted @ 2018-06-26 11:20  星云惊蛰  阅读(131)  评论(0)    收藏  举报