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 相关文章推荐
笑谈配置,使用Smarty技术
Jan 04 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
Apr 26 PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
Aug 07 PHP
php微信支付之公众号支付功能
May 30 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
PHP的PDO预处理语句与存储过程
Jan 27 PHP
YII框架常用技巧总结
Apr 27 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
浅谈PHP的反射机制
2016/12/15 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
Python闭包实现计数器的方法
2015/05/05 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
工作室成员个人发展规划范文
2014/01/24 职场文书
2013年军训通讯稿
2014/02/05 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
金融事务专业求职信
2014/04/25 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
撤诉状格式范本
2015/05/19 职场文书
婚育证明样本
2015/06/16 职场文书
小学数学教师研修日志
2015/11/13 职场文书
实用求职信模板范文
2019/05/13 职场文书
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
Python使用pyecharts控件绘制图表
2022/06/05 Python
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript