### 概述
接口就是一个对象对外的公开(public)的操作方法!在PHP中定义一个接口,其实就是一种纯粹的规范或规定,规定该接口的下级类必须要“实现”的公共方法!接口不是类!接口是类的规范,类又是对象的规范!
### 成员
在一个接口中,只能出现两种成员:
接口常量:其实就是普通的常量,只不过是出现在接口中而已!
抽象方法:没有方法体的方法,但是此时,抽象方法必须声明为public(与抽象类中的抽象方法不同)
### 语法
~~~
interface 接口名{}
~~~
### 思考
为什么这里的抽象方法不需要使用abstract关键字?
因为接口中的方法只能是抽象方法,不能是其他的普通方法!不会造成混淆!
### 实现接口
当一个类“实现”一个接口的时候,也只有两种选择:
1. 实现该接口中所有的公开的抽象方法(完善方法体)
2. 如果该类没有实现接口中的部分(或全部)公开的抽象方法,就应该把该类声明成抽象类,然后等待更下一级的类去实现!此时,没有被实现的方法最好继续声明成抽象方法!
### 接口与抽象类比较
1. 接口不是类,但是抽象类是类 .
2. 从逻辑或结构上看,接口可以看成是抽象类的一个“子集”,比抽象类更“抽象”,只有抽象方法没有其他的普通的方法 .
3. PHP不支持多继承,但是,支持多实现!也就是说,一个类可以同时实现多个接口,这有是接口与抽象类最本质的区别 .
4. 4, 接口与抽象类都可以作为其他类的规范,都可以规定下级类的内部结构,但是在真实的项目中,接口使用的要多一些 .
- PHP加密技术
- md5加密
- Crypt加密
- 函数
- 概述
- 强类型参数
- 可变参数列表
- 值传递&引用传递
- 变量作用域
- 可变函数
- 嵌套函数
- 递归函数
- 匿名函数(闭包)
- 面向对象
- 概念
- 类
- 对象的传值
- 对象的克隆
- 构造方法
- 析构方法
- 克隆方法
- $this
- 类常量
- 静态属性
- 静态方法
- 继承
- 重写
- 重载
- 概述
- 属性重载
- 概述
- __set()
- __get()
- __unset()
- __isset()
- 方法重载
- 概述
- __call()
- __callstatic()
- 封装
- 最终类
- 抽象类
- 接口
- 对象的序列化与反序列化
- __sleep()
- __wakeup()
- 其他魔术方法
- 对象的遍历
- 类和对象相关函数
- 错误
- 概述
- 设置错误级别
- trigger_error()触发错误
- 处理PHP中的错误
- 异常
- 概述
- 自定义异常类
- 自定义文件写入异常类
- 记录和发送异常信息
- 使用观察者模式处理异常信息
- 自定义异常处理器
- 设计模式
- 创建型
- 单例模式
- 工厂模式
- 原型模式
- 结构型
- 注册树模式
- 适配器模式
- 数据映射模式
- 装饰器模式
- 代理模式
- 行为型
- 策略模式
- 观察者模式
- 迭代器模式
- 网络
- cURL
- Oauth2.0
- QQ第三方登录
- TCP/IP协议
- 概述
- HTTP协议
- 概述
- HTTP请求协议
- HTTP响应协议
- WebSocket
- 安装扩展
- Redis
- Socket
- 计算机通信
- socket简介
- PHP操作socket
- TCP
- HTTP服务端
- WebSocket
- PHP7
- 生成器yield
- 异常finally
- CGI和FPM
- php有用命令
- 内存