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 session处理的定制
Mar 16 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
Jul 14 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
成为好程序员必须避免的5个坏习惯
Jul 04 PHP
PHP将字符分解为多个字符串的方法
Nov 22 PHP
php数字每三位加逗号的功能函数
Oct 22 PHP
PHP共享内存用法实例分析
Feb 12 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
Dec 12 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
PHP获取对象属性的三种方法实例分析
Jan 03 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
jquery控制display属性为none或block
2014/03/31 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
在Python的Django框架的视图中使用Session的方法
2015/07/23 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
Python实现修改文件内容的方法分析
2018/03/25 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
Python list与NumPy array 区分详解
2019/11/06 Python
学Python 3的理由和必要性
2019/11/19 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
中英文求职信范文
2014/01/27 职场文书
前处理班长职位说明书
2014/03/01 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
go类型转换及与C的类型转换方式
2021/05/05 Golang
python执行js代码的方法
2021/05/13 Python
redis实现排行榜功能
2021/05/24 Redis