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{

//接口的成员定义;。。。。

}

类和接口的大总结

时间: 2024-09-29 21:04:24

PHP面向对象之接口的相关文章

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

Java面向对象程序设计--接口和内部类

1.接口的定义: In the Java programming language, an interface is not a class but a set of requirements for classes that want to conform the interface. 说明: 1) Interface 不是class,虽然interface具有class的一些特点,例如能够继承,能够定义相同类型的变量,而且和C++的abstract class非常像,但Java 的inter

php学习笔记 面向对象中[接口]与[多态性]的应用

代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽象方法(不

Python全栈之路系列----之-----面向对象4接口与抽象,多继承与多态)

接口类与抽像类 在python中,并没有接口类这种东西,即便不通过专门的模块定义接口,我们也应该有一些基本的概念 编程思想 归一化设计: 1.接口类 不实现具体的方法,并且可以多继承 2.抽象类 可以做一些基础实现,并且不推荐多继承 编程的几类原则: 开放封闭原则:对扩展示开放的,对修改是封闭的依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该应该依赖细节:细节应该依赖抽象.换言之,要针对接口编程,而不是针对实现编程接口隔离原则:使用多个专门的接口,而不使用单一的总接口.

面向对象、接口、服务编程

面向对象: 多态.继承.封装(对象的三个重要特征) 面向接口: 1.定义和实现分开(单一函数过程声明的封装) 2.模块封装,导出实现不可见(dll导出类,以接口形式导出,使不同对象的关联并在内部实现的类型上保持一致,方便相互调用) 3.不同对象的相同类型关联(C++多态侧重于参数对象的识别) 4.java可动态生成类 面向服务: SOA等架构协议交互(进程交互中的一种方式) 面向组件: 脚本交互(java和android可以理解为,状态复杂的key-value键值对形式的状态机,通过脚本输入调整

[面向对象杂谈]接口与多态

人总是很忙的,但是一个人就是一个人,不存在分身术. 假设有个人王大柱,他是光明中学的校长,还是光明村的村委会成员,同时还是他儿子的父亲. 那么我们可以这么想:王大柱是一个类的具体的实现对象,这类名叫"王大柱类",而王大柱类实现了三个接口:"I光明中学校长"."I光明村村委会成员"."I父亲". 画图如下: 那么我们可以称这三个接口为这个类的三个"身份". 我们可以这样制造一个王大柱出来: 王大柱类 王大柱

面向对象高级——接口的基本概念和对象的多态性

接口 需要掌握接口的定义格式及使用 掌握接口与抽象类的关系 具体内容: 接口是Java中最重要的概念,接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成. 如果一个类中完全是由全局常量(static final声明)和抽象方法组成,就可以将其定义成一个接口. 接口的定义格式: interface 接口名称{    全局常量:    抽象方法: }   interface A{ // 定义接口A public static final String AUTHOR = "刘勋&q

【设计模式】面向对象小结——接口、泛型和委托

上一篇文章,通过一张概括性导图,总结性的讲解了一下我对面向对象的理解,以及重写与重载的区别. 这篇文章的主要内容是写,我对面向对象功能:接口.泛型和委托的理解..很多人都认为,我不使用它们,照样能实现程序想要的功能,为什么还要用它们?可以这么说,如果要想混IT行业,那么,我们就要成为专业人员.那么,我们所写的代码就不仅仅是实现其功能那么简单了,我们还要提高程序的性能,更重要的是,我们所写的代码是给别人看的,要让别人看得懂,实现团队合作..接口.泛型和委托让我们的代码更结构化.专业化..    

《java入门第一季》之面向对象(接口收尾)

通过案例的形式,结束接口部分. /* 猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭,睡觉 狗: 姓名,年龄 吃饭,睡觉 由于有共性功能,所以,我们抽取出一个父类: 动物: 姓名,年龄 吃饭();//吃的不一样,定义为抽象方法 睡觉(){} 猫:继承自动物 狗:继承自动物 跳高的额外功能是一个新的扩展功能,所以我们要定义一个接口 接口: 跳高 部分猫:实现跳高 部分狗:实现跳高 实现: 从抽象到具体,这个具体意思是实现后都是具体内容 使用: 使用具体类 */ //定义跳