PHP类实例教程(十九):PHP类接口的定义与规范
2010-01-19 14:17
302 查看
接口(interface)是抽象方法和静态常量定义的集合。
接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量。
接口中没有其它类型的内容。
下面的例子是接口的一个简单写法。
下面的例子定义了一个接口 User ,这个接口中有两个抽象方法,getName() 和setName()。能看到接口的写法和类很相似。
即使abstract 和 final 修饰符也不能修饰接口中的抽象的方法。
接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量。
接口中没有其它类型的内容。
接口的定义
我们先写接口的定义,后面几节再介绍接口的意义。下面的例子是接口的一个简单写法。
<?php interface 接口名 { } ?>
下面的例子定义了一个接口 User ,这个接口中有两个抽象方法,getName() 和setName()。能看到接口的写法和类很相似。
<?php interface User { function setName($name); function getName(); } ?>
接口中的抽象方法
注意,在接口中只能有抽象方法。如果在接口中出现了非抽象方法,会报错如下: Interface function User::setName() cannot contain body in ……….<?php interface User { function setName($name); function getName(){} //这个地方是一个非抽象方法,会报错 } ?>
接口中抽象方法的修饰和访问权限
在接口中的抽象方法只能是public的,默认也是public权限。并且不能设置成 private 或者 protected 类型。否则会报错如下: Access type for interface method User::setName() must be omitted in —on line — (在接口中,访问类型必须忽略。)<?php interface User { function setName($name); private function getName(); //不允许带修饰符,此处如果换成protected也会出错 } ?>
即使abstract 和 final 修饰符也不能修饰接口中的抽象的方法。
接口中的静态抽象方法
在接口中可以使用静态抽象方法。在PHP5.2中,不建议在抽象类中使用静态抽象方法。而接口中依然保留了静态抽象方法。<?php interface User { function setName($name); static function getName() { } } ?>
接口中的静态常量
在接口中可以定义静态常量。而且不用static修饰就是静态的常量。<?php interface User { const MAX_GRADE = 99; //此处不用声明,就是一个静态常量 function setName($name); static function getName() { } } ?>
相关文章推荐
- PHP类实例教程(二十):PHP类接口的实现接口
- PHP类实例教程(二十一):PHP类接口的继承
- PHP类实例教程(二十三):PHP抽象类实现接口
- 回调函数教程(一):回调函数定义及用接口实现的实例
- php类的定义与继承用法实例
- GeoServer基础教程(四):空间数据互操作的接口规范WMS、WFS和WCS
- PHP类实例教程(五):对象的比较
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- MyBatis实例教程--以接口的方式编程
- 泰克9 属性详细教程 接口的定义和实现
- ajax资料收集-Ajax文章(教程和实例)---Ajax资源下载(源码和教程)---Ajax规范标准
- PHP类实例教程(七):析构函数与PHP的垃圾回收
- PHP类实例教程(十三):Static的用法
- C++接口的定义用一个实例说明
- GObject 参考手册:教程:如何定义和实现接口
- QuickCSharp框架开发(14)------定义AuthenticationFactory验证工厂对象、获得AuthenticationProviderFactory验证提供者工厂实例返回的接口
- PHP类实例教程(三):PHP5类中的属性
- [转]C++接口的定义用一个实例说明
- Java泛型--泛型实例--标识接口的定义
- Webpack实例教程及模块化规范