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 相关文章推荐
MySQL相关说明
Jan 15 PHP
php自动适应范围的分页代码
Aug 05 PHP
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
PHP与C#分别格式化文件大小的代码
May 14 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
php实现的Curl封装类Curl.class.php用法实例分析
Sep 25 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
PHP+JavaScript实现无刷新上传图片
Feb 21 PHP
PHP的自定义模板引擎
Mar 24 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 PHP
Django 标签筛选的实现代码(一对多、多对多)
Sep 05 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跨站刷票的实现代码
2013/06/18 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
学习PHP session的传递方式
2016/06/15 PHP
php实现socket推送技术的示例
2017/12/20 PHP
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
5种Python单例模式的实现方式
2016/01/14 Python
Pycharm学习教程(2) 代码风格
2017/05/02 Python
python自动发送邮件脚本
2018/06/20 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
python画图的函数用法以及技巧
2019/06/28 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
python利用opencv实现颜色检测
2021/02/23 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
道歉的话怎么说
2015/05/12 职场文书
车间安全生产管理制度
2015/08/06 职场文书
竞聘书的秘诀
2019/04/02 职场文书
golang日志包logger的用法详解
2021/05/05 Golang
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
浅谈Python数学建模之线性规划
2021/06/23 Python