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实现框架(一)
Oct 09 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
PHP执行linux系统命令的常用函数使用说明
Apr 27 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
php统计文章排行示例
Mar 04 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
php+highchats生成动态统计图
May 21 PHP
Thinkphp中Create方法深入探究
Jun 16 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 PHP
Yii快速入门经典教程
Dec 28 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 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关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
PHP静态成员变量
2017/02/14 PHP
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
js加强的经典分页实例
2013/03/15 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
django的settings中设置中文支持的实现
2019/04/28 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
什么是跨站脚本攻击
2014/12/11 面试题
论群众路线学习心得体会
2014/10/31 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
Python Django获取URL中的数据详解
2021/11/01 Python