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通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 PHP
php引用传值实例详解学习
Nov 06 PHP
PHP判断是否有Get参数的方法
May 05 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 PHP
php英文单词统计器
Jun 23 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
docker-compose部署php项目实例详解
Jul 30 PHP
php测试kafka项目示例
Feb 06 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小技巧之函数重载
2014/06/02 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
php学习笔记之面向对象
2014/11/08 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
Puppeteer使用示例详解
2019/06/20 Python
Python如何实现转换URL详解
2019/07/02 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
PHP中如何使用Cookie
2015/10/28 面试题
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
外贸主管求职简历的自我评价
2013/10/23 职场文书
关于工资低的辞职信
2014/01/14 职场文书
违纪检讨书2000字
2014/02/08 职场文书
小学母亲节活动方案
2014/03/14 职场文书
干部考核评语
2014/04/29 职场文书
自我管理的活动方案
2014/08/25 职场文书
python 中的jieba分词库
2021/11/23 Python
mysql创建存储过程及函数详解
2021/12/04 MySQL