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中heredoc的使用方法
Jun 17 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
php树型类实例
Dec 05 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
PHP中的一些常用函数收集
May 26 PHP
Thinkphp关闭缓存的方法
Jun 26 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 PHP
PHP自动识别当前使用移动终端
May 21 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缓存类代码(附详细说明)
2011/06/09 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
PHP中文分词 自动获取关键词介绍
2012/11/13 PHP
定义php常量的详解
2013/06/09 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
js 点击按钮弹出另一页,选择值后,返回到当前页
2010/05/26 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
js时间控件只显示年月
2017/01/08 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
Python中字典的基本知识初步介绍
2015/05/21 Python
Python实现登录接口的示例代码
2017/07/21 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
Python批量发送post请求的实现代码
2018/05/05 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
奶茶专卖店创业计划书
2014/01/18 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
先进党支部事迹材料
2014/12/24 职场文书
关于观后感的作文
2015/06/18 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL