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
开源SNS系统-ThinkSNS
May 18 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
Dec 22 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
php cli配置文件问题分析
Oct 15 PHP
深入php内核之php in array
Nov 10 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
php实现购物车功能(上)
Jul 23 PHP
php 运算符与表达式详细介绍
Nov 30 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
May 08 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 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获取youku视频真实flv文件地址的方法
2014/12/23 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
非常好的js代码
2006/06/27 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
jquery获取节点名称
2015/04/26 Javascript
chrome调试javascript详解
2015/10/21 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
JavaScript实现区块链
2018/03/14 Javascript
Nodejs实现WebSocket代码实例
2020/05/19 NodeJs
Js图片点击切换轮播实现代码
2020/07/27 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
python中readline判断文件读取结束的方法
2014/11/08 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
python实现线程池的方法
2015/06/30 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
python中的常量和变量代码详解
2018/07/25 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
综合实践教学反思
2014/01/31 职场文书
小学敬老月活动方案
2014/02/11 职场文书
安全生产培训心得体会
2016/01/18 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书
python如何进行基准测试
2021/04/26 Python
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server