php 接口技术
来源:互联网 发布:sql 创建主键约束 编辑:程序博客网 时间:2024/06/05 19:07
什么是接口?
先来看抽象类:抽象类是不能被实例化的类,任何一个类,如果它里面至少有一个方法被声明为抽象的,那么这个类就必须被声明为抽象的。
被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。
(当然抽象类中也可以没有抽象方法,但是含有抽象方法的类必须被定义为抽象类)。
如:abstract class 类名{
属性1;
属性2;
非抽象方法(){}
抽象方法1();
抽象方法2();
}
设想一下,将上述抽象类中的“实在的成员”删除,即删除那些非抽象的成员,那么该抽象类中就只有抽象方法:
如:abstract class 类名{
抽象方法1();
抽象方法2();
}
由此,可以理解为:这个类“太抽象了”,几乎自己什么都没做,就是让别人来做;
那么:接口就与这个“太抽象的类”类似;
接口,就是规定,里面只能放“抽象方法”和“常量”的一种类似类的结构体;
因此,接口是“比抽象类更抽象的”一种语法。
接口的定义形式(interface):
如:interface 接口名{
常量1;
常量2;
...........
抽象方法1;
抽象方法2;
...........
}
说明:1.可见接口中只有“常量”和“抽象方法”两种成员;
2.接口常量的使用形式为:接口名::常量名称;
3.接口中的抽象方法不要使用abstract修饰,也不需要使用访问控制符修饰,因为其天然就是public修饰;
例:interface A{
const PI = 3.14;
const CC1 = 1 ;
function Show1();//抽象方法,无形参
function Func2($p1,$p2);//抽象方法,2个形参
}
为什么需要接口?
面向对象的编程思想是对“现实世界”的描述,而现实世界往往是多继承关系;
但:
出于降低类与类之间的关系的复杂度的考虑,将PHP语言设计为单继承的;但这样就无法表达出现实世界的多继承特性;
所以:
接口就是对没有多继承的类之间关系的一个补充;因为接口可以实现“多继承”,只是此时不称为“继承”而是称为“实现”而已;
即:接口1——》类1;
就称为:类1实现的接口1;
其本质:是类1中有了接口1中的“特征信息”;
例:
<?php/*定义Player接口*接口中的抽象方法不要使用abstract修饰,也不需要使用访问控制符修饰,因为其天然就是public修饰; * */interface Player{ function play(); function stop(); function next(); function prev();}/*定义USBset接口* 接口,就是规定,里面只能放“抽象方法”和“常量”的一种类似类的结构体; * */interface USBset{ const USBWidth = 12; const USBHeight = 5; function dataIn();//数据输入 function dataOut();//数据输出}/*这里MP3Player类必须实现Player,USBset中的所有方法*php语言中一个类不可以继承多个类,但是一个类可以继承多个接口 * */class MP3Player implements Player,USBset { function Play(){} function stop(){} function next(){} function prev(){} function dataIn(){} function dataOut(){}}
- php 接口技术
- PHP接口开发加密技术
- PHP学习笔记----PHP接口技术
- php面向对象(OOP):php5接口技术
- PHP的数据库接口和技术详解
- PHP接口开发加密技术实例原理与例子
- 接口技术
- php 接口
- PHP 接口
- php接口
- PHP接口
- PHP接口
- php接口
- php 接口
- PHP接口
- PHP 接口
- php 接口
- php接口
- 回归学习--“理解”数据
- 1.1 起步 - 关于版本控制
- c#属性的赋值问题:为什么属性只读,但是构造函数却还是可以赋值
- jar包下载网站
- java虚拟机和内存管理
- php 接口技术
- class 类 封装继承多态
- Redis学习笔记(七)jedis超时重试机制注意事项
- 【codeforces 548C】Mike and Frog
- DOS命令之服务(一)
- 解决ubuntu上samba服务器通过windows访问不了的问题。
- Echarts四周的边框的样式
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- 通过VBA代码合并单元格