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
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
php的ajax框架xajax入门与试用介绍
Dec 19 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
php防止网站被刷新的方法汇总
Dec 01 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
PHP7匿名类用法分析
Sep 26 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
PHP生成随机码的思路与方法实例探索
Apr 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
php实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
JS+DIV实现鼠标划过切换层效果的实例代码
2013/11/26 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
基于WebUploader的文件上传js插件
2016/08/19 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
学习python可以干什么
2019/02/26 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
关于python中导入文件到list的问题
2020/10/31 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
酒店值班经理的工作职责范本
2014/02/18 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python