PHP接口与类是什么关系?
前面提到了php中抽象类和抽象方法,今天给大家谈谈php中接口技术。在PHP中每个类只能继承一个父类,如果声明的新类继承了抽象类实现了以后,这个新类就不能有其它的父类了。但是在实际中需要继承多个类实现功能,为了解决不能继承多个类的问题php引入了接口概念。PHP接口与类是什么关系?PHP接口是一种特殊的抽象类,而抽象类又是一种特殊的类,所以PHP接口也是一种特殊类的。抽象类和PHP接口都不能实例化对象,需要通过子类实现。
接口的特点
在PHP接口中所有声明的方法都必须是抽象方法,方法不需要用abstract关键字,因为方法默认是公共权限,也不需要用pubilc表示。不能在接口中声明变量,可以使用const关键字声明常量属性,PHP接口中所有成员必须有public的访问权限。类声明用“class”关键字,而接口的声明是使用“interface”关键字,可以使用extends关键字让接口去继承接口,实现接口之前扩展。声明格式如下:
接口中内全部抽象方法,需要子类的对象去调用在子类中实现方法。类去继承接口时需要使用“implement”关键字来实现,不是使用extends关键字完成。抽象类去实现接口中的部分方法,也需要使用implement关键字实现。声明一个接口A,抽象类B使用implements继承了接口A,抽象类B中声明接口A中的抽象方法a,声明一个类C中继承了接口A中的抽象方法a和抽象方法b。代码如下:
php接口使用注意事项
PHP是单继承的,一个类只能有一个父类,但是接口可以实现多个接口。将要实现的多个接口之前使用逗号分隔开,而且子类要将所有的接口中的抽象方法全部实现才能创建对象,否则会出错。接口相当于一个规范,打个比方接口像是国家法律,而抽象类就像是单位的规章制度,在单位要遵守的单位制度同时也要遵守国家的法律。实现继承多个接口语法是class 类名 接口1,接口2,接口3,....接口n{}。最后在提醒大家一次子类一定要实现接口中所有的抽象方法,否则会报错!
每天分享一个知识点,每日寄语:Perseverance until success !(坚持不懈直到成功)