介绍接口之前,我们要知道,为什么要使用接口,这里向大家介绍一下。

那为什么要使用接口呢?

计算机语言中,只有少数的面向对象支持多重继承,我们所学习的PHP语言和大多数语言一样,并不支持多重继承。说白了就是一个父类可以有多个子类,但是子类只能有一个父类。

什么又是多重继承呢?

多重继承就是一个子类,继承了两个或多个父类,就是多重继承,在PHP中是不被允许的。如果要在PHP中实现多重继承功能,那么,我们就要用到接口。接口可以看成是解决多重继承的方法,PHP的面向对象的接口和其他面向对象语言接口类似。

接口类的语法介绍:

接口类是通过interface关键字来声明,并且类中只能包含未实现的方法和一些成员变量,格式如下:interface InterfaceName{

function interfaceName1(){

}

function interfaceName2(){

}

}

注意:

不要用public以外的关键字来修饰接口中的类成员,对于方法,不写关键字也是可以的。这是由接口类自身的属性决定的。

子类的语法介绍:

子类是通过inplements关键字来实现接口的,如果要实现多个接口,那么每个接口之间应该使用逗号隔开。且接口类中所有未实现的方法需要在子类中全部实现,否则会出现致命错误。

子类定义格式:class SubClass implements InterfaceName1, InterfaceName2{

function InterfaceName1(){

}

function InterfaceName2(){

}

}

关于接口类实例:<?php

header("content-type:text/html;charset=utf-8");

interface A{ //创建接口

function a();

}

interface B{

function b();

}

class Php implements A{

function a()

{

echo 'php中文网';

}

}

class Html implements A , B{

function a()

{

echo 'PHP中文网是免费网站';

}

function b()

{

echo 'PHP中文网网址是www.php.cn';

}

}

$php = new Php();

$html = new html();

$php ->a();

echo '
';

$html ->a();

$html ->b();

接口类中所有未实现的方法需要在子类中全部实现,否则会出现致命错误。大家可以亲自尝试一下部分实现接口中的类,看看会不会出现致命错误。

php中多重继承,PHP面向对象之多重继承与接口用法相关推荐

  1. php中命名空间、面向对象、访问控制、接口

    命名空间: php中命名空间:解决自己编写的代码和php内置及第三方的函数.常量.类命名冲突问题(在不同的命名空间可以定义相同名称的常量.类.函数):及为繁琐的命名创建一个别名,具体如下: //1.简 ...

  2. JavaScript中的的面向对象中的一些知识

    JavaScript中的的面向对象中的一些知识 function Cat(name,age){return {name:name,age:age }}//构造函数function Dog(name,a ...

  3. python中什么叫类、什么叫对象_python中的类面向对象的基本概念!

    一.概述 今天我们讲述Python中的类&面向对象的基本概念. 首先我们为什么要学习面向对象,我讲一个故事,应该就可以明白了.在古时候,官府衙门如果要颁布什么告示就会去找工匠将命令中的字都雕刻 ...

  4. 在Objective-C中浅谈面向对象

    接触面向对象也有一段时间了,当时是通过C++学习的OOP,后来又接触到了PHP和Java.每种OOP的语言在面向对象上或多或少都会有不同的地方,现在在学习OC的面向对象部分,又感觉到OC面向对象的特点 ...

  5. python中的多态用法_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  6. python中的继承有什么特点_Python中 什么是面向对象-继承和多态

    文字有点长,对于不想看文字的朋友,可以去这里看视频,内容和这个文字一样的,视频可能更好理解 https://www.piqizhu.com/v/zaX9K4pd4GE 上一篇文章<python教 ...

  7. 面向过程中模拟出面向对象,用c语言模拟出MFC控件,消息循环,“设计用户界面”

    大家好,今天给大家分享"怎样用c模拟出MFC控件 简单模拟出消息循环,按钮控件",面向过程中模拟出面向对象. 编程思路 首先用绘图库EasyX绘制窗口,窗口中绘制按钮,把按钮对象化 ...

  8. 为什么有人说面向对象编程就是面向接口编程?

    "面向对象编程就是面向接口编程" 这句话相信, 很多人都在网上见过, 装b利器. 我一开始也是这么想的, 那些装b者丢下这一句, 就没下文了. 首先, 我认为这句话是1个假命题. ...

  9. python在删除对象时会自动调用析构函数_Python面向对象程序设计构造函数和析构函数用法分析...

    本文实例讲述了Python面向对象程序设计构造函数和析构函数用法.分享给大家供大家参考,具体如下: 构造函数和析构函数 1.构造方法的使用 很多类都倾向于将对象创建为有初始化状态.因此类可以定义一个名 ...

最新文章

  1. phpstudy更改但是php版本没变
  2. 通过一道题目来理解互斥和同步
  3. Count Complete Tree Nodes
  4. ASP.NET 2.0 中的资源与本地化
  5. flask的ajax的csrf代码
  6. Zabbix监控多个JVM进程
  7. Installation error code: -103签名不一致错误
  8. 为什么不能在SSH(Secure Shell)登录中设置ulimit值?
  9. Err:error occurred at recursive SQL level 1
  10. Java WebSocket生命周期
  11. Qt4项目迁移到Qt5问题:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets .
  12. python 验证码
  13. python音乐推荐系统_音乐推荐系统
  14. 互联网原创表情论坛举行 探索设计师盈利新生态
  15. big O notation - 大 O 表示法
  16. c#录音和放音,超简单!不用DirectX
  17. Jedis scan及其count的值
  18. 一键获取网易互娱内推攻略,快人一步拿offer!
  19. 安卓系统双屏异显_Android10模拟器上调试双屏异显
  20. PS新手淘宝美工常见问题-主图和详情尺寸(一)

热门文章

  1. Oracle 19c 新特性:Schema Only Account详解
  2. 在Vue中使用JSX,很easy的
  3. 技术实践:教你用Python搭建gRPC服务
  4. Python基础语法和数据类型最全总结
  5. 伯克利:serverless是下一代计算范式
  6. 【华为云技术分享】华为专家亲述:如何转型搞 AI?
  7. 【HC资料合集】2019华为全联接大会主题资料一站式汇总,免费下载!
  8. webservice的css哪里添加,XML+XSLT+CSS+JQuery+WebService组建Asp.Net网站
  9. 解决Ubuntu系统终端运行python文件报错“ImportError/ModuleNotFoundError:No Module named xx”
  10. python人工智能github的一些跑程序技巧(持续更新~)