PHP面向对象程序设计之接口用法


Posted in PHP onAugust 20, 2014

接口是PHP面向对象程序设计中非常重要的一个概念。本文以实例形式较为详细的讲述了PHP接口的用法。具体如下:

接口:interface

在PHP中,我们可以规定,一个对象应该具有哪些公共的外部操作,即可使用interface来规定。
公共的方法就是接口。用于规定一个对象应该用于哪些公共的操作方法(接口),这个也叫接口(公共操作方法的集合)
即:接口(interface结构,公共方法集合)

公共方法(接口方法)
定义:用于限定某个对象所必须拥有的公共操作方法的一种结构,称之为接口(interface)
语法:定义接口结构,使用interface关键字。接口内定义的都是一些公共方法。

interface接口名
{
公共操作方法列表
}

例子如下:

interface I_Goods
{
public function sayName();
public function sayPrice();
}

注意:
1.接口方法,访问权限必须是公共的 public
2.接口内只能有公共方法,不能存在成员变量
3.接口内只能含有未被实现的方法,也叫抽象方法,但是不用abstract关键字。

类实现接口,利用关键字implements完成。

例子:

interface I_Goods
{
public function sayName();
public function sayPrice();
}
class Goods implements I_Goods
{
public function sayName()
{
}
public function sayPrice()
{
}
}

这样,实现该接口的类,必须实现接口内所有的抽象方法。而且可以肯定,该方法一定是公共的外部操作方法。

多实现:该功能,在理论上可以通过抽象类来实现,但是抽象类,不专业。
使用接口则专业些,实现上,因为php支持多实现,而仅支持单继承

例子如下:

interface I_Goods
{
public function sayName();
public function sayPrice();
}
interface I_Shop
{
public function saySafe();
}
class Goods implements I_Goods , I_Shop
{
public function sayName()
{
}
public function sayPrice()
{
}
public function saySafe()
{
}
}

接口之间也可以继承
例子如下:

interface I_Goods
{
public function sayName();
public function sayPrice();
}
interface I_Shop extends I_Goods
{
public function saySafe();
}
class Goods implements I_Shop
{
public function sayName()
{
}
public function sayPrice()
{
}
public function saySafe()
{
}
}

php对象接口的支持,可以定义类常量

例子如下:

interface I_Goods
{
const PAI = 3.14;
public function sayName();
public function sayPrice();
}
interface I_Shop extends I_Goods
{
public function saySafe();
}
class Goods implements I_Shop
{
public function sayName()
{
}
public function sayPrice()
{
}
public function saySafe()
{
}
}
echo Goods::PAI;

运行输出:3.14

PHP 相关文章推荐
很实用的一个完整email发送程序
Oct 09 PHP
php 动态执行带有参数的类方法
Apr 10 PHP
PHP基础学习小结
Apr 17 PHP
php中怎么搜索相关联数组键值及获取之
Oct 17 PHP
php中的PHP_EOL换行符详细解析
Oct 26 PHP
php使用pack处理二进制文件的方法
Jul 03 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
php微信高级接口群发 多客服
Jun 23 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
php简单处理XML数据的方法示例
May 19 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
Aug 20 #PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 #PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 #PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 #PHP
PHP文件缓存内容保存格式实例分析
Aug 20 #PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 #PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 #PHP
You might like
与数据库连接
2006/10/09 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
非常好用的Zend Framework分页类
2014/06/25 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
js Form.elements[i]的使用实例
2011/11/13 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
js实现键盘Enter键提交表单的方法
2015/05/27 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
Python实现二分查找与bisect模块详解
2017/01/13 Python
python实现二分查找算法
2017/09/21 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
python中的随机函数小结
2018/01/27 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
Python实现TCP通信的示例代码
2019/09/09 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
python中adb有什么功能
2020/06/07 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
简单的辞职信范文
2014/01/18 职场文书
本科生职业生涯规划书范文
2014/01/21 职场文书
小学语文国培感言
2014/03/04 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
九寨沟导游词
2015/02/02 职场文书
工作表现证明
2015/06/15 职场文书
golang的文件创建及读写操作
2022/04/14 Golang