接口interface,接口继承implements
php中,只支持从一个类继承,不支持从两个或者更多的类同时继承。从两个或者两个以上的类继承的能力被称为多重继承。php在设计上是禁止这种功能的。原因在于,避免多个类带来的复杂性。当发现需要从两个或者更多类继承时,可以将父类的方法拆开,然后使用接口来达到相同的目的。
接口虽然与类相似,但是,接口中只能包含方法原型,而不能包含任何完整的定义方法。这样可以防止使用抽象类时可能出现的方法冲突,从而能在给定的实现类上使用多个接口。然而,既然接口不能定义具有完整实现的方法,因此如果我们希望为继承者提供默认功能,就必须单独提供一个非抽象的基类。
说明:基类,就是父辈、祖辈类等;派生类,就是子类、孙子类等。
1.接口定义
使用关键字:interface
//定义一个接口ISpeedInfo
interface ISpeedInfo{
public function getMaximumSpeed();
}
2.接口的使用
使用关键字:implements
//定义一个扩展类FastCar,并调用接口ISpeedInfo
Class FastCar extends Car implements ISpeedInfo{
function getMaximumSpeed(){
return 150;
}
}
说明:扩展类FastCar,知道ISpeedInfo接口;而Car基类并不知道有ISpeedInfo接口。
注意:当我们希望调用两个或者两个以上的接口时,采用逗号分隔
Class FastCar extends Car implements ISpeedInfoA,ISpeedInfoB,ISpeedInfoC{}
3.调用接口中的方法
//调用
$a=new FastCar();
echo $a->getMaximumSpeed();
=======完整代码======
<?php
//定义一个接口ISpeedInfo
interface ISpeedInfo{
public function getMaximumSpeed();
} //定义一个抽象类Car
class Car{
//任何非抽象方法
} //定义一个扩展类FastCar,并调用接口ISpeedInfo
Class FastCar extends Car implements ISpeedInfo{
function getMaximumSpeed(){
return 150;
}
} //调用
$a=new FastCar();
echo $a->getMaximumSpeed();
?>
接口interface,接口继承implements的更多相关文章
- Day06_31_接口(Interface)
java 接口(Interface) 接口和抽象类的区别? 子类只能通过extends关键字去继承抽象类(Abstract),子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法(如果子类没有实现 ...
- typescript接口---interface
假如我现在需要批量生产一批对象,这些对象有相同的属性,并且对应属性值的数据类型一致.该怎么去做? 在ts中,因为要检验数据类型,所以必须对每个变量进行规范,自然也提供了一种批量规范的功能.这个功能就是 ...
- go语言中的接口interface
package main; import "fmt" //接口interface //接口是一个或多个方法签名的集合 //只要某个类型拥有该接口的所有方法签名,即算实现该接口. / ...
- Golang 接口interface
接口interface 接口是一个或多个方法签名的集合 只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,这成为Structural Typing 接口只有方法声明,没 ...
- JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac
记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...
- 【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
1.什么是匿名内部类? 内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类. 2.为什么需要匿名内部类? 每个inner class都能够各自继承某一实现类(implemen ...
- 19. 接口(创建interface 继承implements)
1.语法: interface 接口名{ 属性 抽象方法 } 2.实例: 3.注意: 1)类实现接口可以通过implements实现,实现接口的时候必须把接口中的所有方法实现,一个类可以实现多个接口. ...
- JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展
JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来 ...
- 接口interface、实现接口implements
接口实现类的多重继承,即一个类有多个父类. interface定义接口: interface 接口名 [extends 父接口名列表]{ 变量: 方法: } implements实现接口: class ...
- Java 接口 interface implements
接口定义了一系列的抽象方法和常量,形成一个属性集合. 接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口. 实现接口的类必须实现接口中定义的抽象方法,具体实现细节由类自己定义.可以说接口定 ...
随机推荐
- 线性代数-矩阵-【1】矩阵汇总 C和C++的实现
矩阵的知识点之多足以写成一本线性代数. 在C++中,我们把矩阵封装成类.. 程序清单: Matrix.h//未完待续 #ifndef _MATRIX_H #define _MATRIX_H #incl ...
- [2014-08-17]Mac OSX 截图快捷键
系统:OSX 10.9.4 内容来自网络,存于此以便查阅 基本操作 全屏截图:Command-Shift-3 指定区域截图:Command-Shift-4 指定窗口截图:Commnad-Shift-4 ...
- Extjs:添加查看全部按钮
var grid =new Ext.grid.GridPanel({ renderTo:'tsllb', title:'产品成本列表', selModel:csm, height:350, colum ...
- ajax请求后台,有时收不到返回值的解决办法
昨天下午做项目遇到一个问题,贴出来方便以后翻阅,也给大家个参考. 问题: 具体做的是个文件导入的功能,导入的功能是成功了,但是界面一直得不到返回值,排查了一下午,调试的时候是可以有返回的,但是关掉浏览 ...
- CAP和BASE理论
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt370 1. CAP理论 2000年7月,加州大学伯克利分校的Eric Bre ...
- springboot 入门二- 读取配置信息一
在上篇入门中简单介绍下springboot启动使用了大量的默认配置,在实际开发过程中,经常需要启动多个服务,那端口如何手动修改呢? 此篇就是简单介绍相关的配置文件信息. Spring Boot允许外部 ...
- 转:【Java并发编程】之二十三:并发新特性—信号量Semaphore(含代码)
载请注明出处:http://blog.csdn.net/ns_code/article/details/17524153 在操作系统中,信号量是个很重要的概念,它在控制进程间的协作方面有着非常重要的作 ...
- [2017BUAA软工助教]博客格式的详细说明
一.为什么要强调博客格式 可以对比粗读一下这几篇博客然后自己感受一下博客格式对博客阅读体验的影响: MarkDown流: [schaepher]2017春季 JMU 1414软工助教 链接汇总 ...
- 第二次项目冲刺(Beta阶段)--第四天
一.站立式会议照片 二.项目燃尽图 三.项目进展 队员 ID 贡献比 王若凡 201421123022 20% 吕志哲 201421123021 16% 欧阳勇 201421123026 16% 卢 ...
- 201521123056 《Java程序设计》第4周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 1.1 instanceof 测试一个对象是否是某个类的实例,即使左边是右边类的子类的实例对 ...