接口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
接口定义了一系列的抽象方法和常量,形成一个属性集合. 接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口. 实现接口的类必须实现接口中定义的抽象方法,具体实现细节由类自己定义.可以说接口定 ...
随机推荐
- 利用js实现禁用浏览器后退
原博主链接为:http://blog.csdn.net/zc474235918/article/details/53138553 现在很多的内部系统,一些界面,都是用户手动点击退出按钮的.但是为了避免 ...
- 官方问答--微信小程序常见FAQ (17.8.21-17.8.27)
给提问的开发者的建议:提问之前先查询 文档.通过社区右上角搜索搜索已经存在的问题. 写一个简明扼要的标题,并且正文描述清楚你的问题. 提交 BUG:需要带上基础库版本号,设备信息(iOS, Andro ...
- sed武功心法(info sed翻译+注解)
本文中的提到GNU扩展时,表示该功能是GNU为sed提供的(即GNU版本的sed才有该功能),一般此时都会说明:如果要写具有可移植性的脚本,应尽量避免在脚本中使用该选项. 本文中的正则表达式几乎和gr ...
- switch实现一个两数的运算
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- git 介绍及其使用总结
版本控制 Git 目录 目录 2 第1章 Shell和vi 4 1.1 什么是shell 4 1.2 shell分类 4 1.3 认识bash这个shell ...
- 九九乘法表实现---基于python
# coding:utf-8"""九九乘法表"""for k in range(1,10): for i in range(1,k+1 ...
- docker学习之--日常命令
.查看镜像 sudo docker images sudo pull docker.io #下载镜像 sudo push docker.io #上传镜像 sudo docker save -o cen ...
- docker的简单搭建(java/tomcat 环境)
1.一副图简单了解下docker的布局,它是虚拟的,docker分为私服.镜像.容器三个模块 一般从私服pull镜像,镜像run一个容器,我们把容器作为一个虚拟服务,里面可以独立运行进程有独立的内网I ...
- java程序启动参数-D含义详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt407 java程序启动参数 -D是用来做什么的呢?去查询了一下官方解释: S ...
- yum安装mariadb-galera同步
节点 ip地址 hostname 系统版本 程序版本 node1 10.4.90.90 mysql1 db1 ...