PHP接口继承及接口多继承原理与实现方法详解


Posted in PHP onOctober 18, 2017

本文实例讲述了PHP接口继承及接口多继承原理与实现方法。分享给大家供大家参考,具体如下:

在PHP的接口中,接口可以继承接口。虽然PHP类只能继承一个父类(单继承),但是接口和类不同,接口可以实现多继承,可以继承一个或者多个接口。当然接口的继承也是使用extends关键字,要多个继承的话只要用逗号把继承的接口隔开即可。

需要注意的是当你接口继承其它接口时候,直接继承父接口的静态常量属性和抽象方法,所以类实现接口时必须实现所有相关的抽象方法。

现在你对PHP接口的继承有所了解了吧,下面的例子可供参考,代码如下:

<?php
interface father{
  function shuchu();
}
interface fam extends father{
  function cook($name);
}
class test implements fam{
  function shuchu(){
    echo "接口继承,要实现两个抽象方法";
    echo "<br>";
  }
  function cook($name){
    echo "平时经常做饭的人是:".$name;
  }
}
$t=new test();
$t->shuchu();
$t->cook("妈妈");
?>

代码运行结果如下:

接口继承,要实现两个抽象方法
平时经常做饭的人是:妈妈

上面的示例是接口继承了一个接口,所以在test类实现fam接口的时候要实例两个抽象方法,就是把接口的子类和父类的抽象方法都实例。

下面来看一个接口多继承的示例,代码如下:

<?php
interface father{
  function shuchu();
}
interface mother{
  function dayin($my);
}
interface fam extends father,mother{
  function cook($name);
}
class test implements fam{
  function dayin($my){
    echo "我的名字是:".$my;
    echo "<br>";
  }
  function shuchu(){
    echo "接口继承,要实现两个抽象方法";
    echo "<br>";
  }
  function cook($name){
    echo "平时经常做饭的人是:".$name;
  }
}
$t=new test();
$t->shuchu();
$t->dayin("小强");
$t->cook("妈妈");
?>

示例运行结果:

接口继承,要实现两个抽象方法
我的名字是:小强
平时经常做饭的人是:妈妈

这段代码由于接口继承了两个接口,所有实例时要把这三个抽象类的所有抽象方法都实例,总共有三个。看完这两个例子,你应该对接口的继承熟悉了吧,其实就一个单继承和多继承,只要实现了所有相关的抽象方法就可以了。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php 字符转义 注意事项
May 27 PHP
MySQL的FIND_IN_SET函数使用方法分享
Mar 27 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
php数组查找函数总结
Nov 18 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
php5.3后静态绑定用法详解
Nov 11 PHP
php把文件设置为插件的技巧方法
Feb 03 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 #PHP
php中各种定义变量的方法小结
Oct 18 #PHP
php 算法之实现相对路径的实例
Oct 17 #PHP
php 二维数组快速排序算法的实现代码
Oct 17 #PHP
php 数据结构之链表队列
Oct 17 #PHP
PHP实现的贪婪算法实例
Oct 17 #PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 #PHP
You might like
php一次性删除前台checkbox多选内容的方法
2013/09/22 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
php连接mysql数据库
2017/03/21 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
js function定义函数使用心得
2010/04/15 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
如何运行带参数的python脚本
2019/11/15 Python
电子专业毕业生自我鉴定
2014/01/22 职场文书
干部培训自我鉴定
2014/01/22 职场文书
2014年纪检工作总结
2014/11/12 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
python脚本框架webpy模板赋值实现
2021/11/20 Python
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏