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 相关文章推荐
PHP初学者头疼问题总结
Oct 09 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
php向js函数传参的几种方法
Aug 10 PHP
javascript some()函数用法详解
Nov 13 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
YII框架批量插入数据的方法
Mar 18 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
php框架CodeIgniter主从数据库配置方法分析
May 25 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
Smarty模板配置实例简析
Jul 20 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
php短信接口代码
2016/05/13 PHP
javascript 闭包疑问
2010/12/30 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
node.js实现简单的压缩/解压缩功能示例
2019/11/05 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
Python 装饰器深入理解
2017/03/16 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python实现五子棋小游戏
2020/03/25 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
基于Python的OCR实现示例
2020/04/03 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
医学生个人求职信范文
2014/02/07 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
就业协议书范本
2014/10/08 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript
python中的装饰器该如何使用
2021/06/18 Python
图文详解matlab原始处理图像几何变换
2021/07/09 Python
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python