PHP面向对象之接口
接口(interface)技术
什么是接口?
先看抽象类:
abstract class 类名 {
属性1;
属性2;
.....
非抽象方法1;
非抽象方法2;
......
抽象方法1;
抽象方法2;
......
}
设想,将上述抽象类中“实在的成员”,删除,即删除那些非抽象的成员。则,自然该抽象类中,就只有抽象方法;
abstract class 类名 {
抽象方法1;
抽象方法2;
......
}
由此,可以理解为:这个抽象类,“太抽象了”,几乎自己什么都没做,就光让别人做什么。
那么:
接口就是这样一个“天然不实在”的家伙:
接口,就是规定,里面只能放“抽象方法”和“常量”的一种类似类的语法结构;
——可见,接口就是“比抽象类更抽象的”一种语法结构。
接口(interface)定义形式:
interface 接口名{
常量1;
常量2;
.....
抽象方法1;
抽象方法2;
.....
}
说明:
1,可见,接口中,只有常量(接口常量)和抽象方法两种成员;
2,接口常量的使用形式为: 接口名称::常量名称;
3,接口中的抽象方法,不要使用abstract修饰,也不需要使用访问控制修饰符,因为其天然就是public

为什么需要接口?
面向对象编程思想是对“现实世界”的描述(模拟)!
现实世界往往都都是多继承的;
但:
出于降低类跟类之间关系的复杂度的考虑,就将语言设计为单继承的;
但这样,就无法表达出现实世界的多继承特性;
则:
接口就是对没有多继承的类之间关系的一个补充;
因为:接口可以实现“多继承”——但此时不称为继承而已,而是称为“实现”;
即:
接口1 -->> 类1;
就称为:类1实现了接口1;
其本质,其实就是类1中,有了接口1中“特征信息”;
使用形式:
形式为:
class 类名 implements 接口名1, 接口名2, ....{
//类的定义。
}
这里,叫做,类实现了接口。

其中,接口跟接口之间,也可以继承,跟类之间的继承:
interface 接口1 extends 接口2{
//接口的成员定义;。。。。
}
类和接口的大总结


PHP面向对象之接口的更多相关文章
- Java面向对象:接口
Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...
- php面向对象的接口和APP接口区别
以下是php面向对象的接口:
- JavaSE入门学习21:Java面向对象之接口(interface)(二)
一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...
- Python面向对象之接口类(抽象类)
Python面向对象之接口类(抽象类):就是制定一个规范. 比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因). 他的定义是需要abc模块,要变的就是他的方 ...
- Java学习笔记(六):面向对象、接口和抽象类
类和对象 Java是一门面向对象的语言,下面我们来了解一下Java中的面向对象. 方法和重载 Java中的方法格式如下: 访问修饰符 返回值类型 方法名(参数){ 方法主体 } Java的方法支持重载 ...
- 《java入门第一季》之面向对象(接口收尾)
通过案例的形式,结束接口部分. /* 猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭,睡觉 狗: 姓名,年龄 吃饭,睡觉 由于有共性功能,所以,我们抽取出一个父类: 动物: ...
- day 25 面向对象之接口、抽象类、多态、异常处理、反射、断言
复习 '''继承1.父类:在类后()中写父类们class A:passclass B:passclass C(A, B):pass2.属性查找顺序:自己 -> ()左侧的父类 -> 依 ...
- 面向对象php 接口 抽象类
1.定义类和实例化对象: 使用关键字class定义类,使用new实例化对象: 2.类成员的添加和访问: 类成员:有属性,方法,常量(常量名不带$符): 访问属性的时候,变量名不带$符 添加属性需要使用 ...
- python面向对象 : 抽象类(接口类),多态,封装(私有制封装)
一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...
- Java 面向对象之接口、多态
01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...
随机推荐
- 一些有趣的 Shell 命令
find . -name "*.db" -type f 查找当前路径下名称满足正则*.db的文件,-type d 则是查找文件夹 grep -rn "Main" ...
- Using a custom AxisRenderer object
Using a custom AxisRenderer object http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d1 ...
- WPF 窗口句柄获取和设置
原文:WPF 窗口句柄获取和设置 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83347163 ...
- vue 与原生app的对接交互(混合开发)
小伙伴们在用vue开发h5项目特别是移动端的项目,很多都是打包后挂载在原生APP上的,那就少不了与原生交互了,我最近就是在坐这个,踩了一些坑,拿出来给大家分享下. 0.通过url传输数据:(一般是在入 ...
- python 内置模块(hash lib)
用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 MD5 import hashlib hash=h ...
- VirtualBox复制CentOS后提示Device eth0 does not seem to be present的解决方法
使用VirtualBox复制一份CentOS后重新设置了网卡地址,导致启动网络服务出现下图错误 解决方案 执行命令,查看/etc/udev/rules.d/70-persistent-net.rule ...
- ffmpeg 压缩H265 Windows 硬件编码
硬件NVIDIA:ffmpeg.exe -i input.avi -c:v hevc_nvenc -preset:v fast output.mp4 软件 :ffmpeg.exe - ...
- 解决E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
是不是在使用ubuntu的时候特别是安装或更新的时候会出现下面的情况: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource t ...
- Linux权限管理命令
查询linux命令用法网址:cht.sh 1.chmod——改变文件/目录的权限 用法: ① chmod [{ugoa}{+-=}{rwx}] [文件/目录] ---给文件的(用户.所属组.其他人 ...
- vue route.go 载入刷新
vue route 重新载入刷新: this.$router.go({path : 'path' , query: { param: this.param} })