面向对象 - 接口 ¶
作者:KK
发表日期:2017.6.12
要点速读 ¶
这个知识点在平时开发中不多用,读框架代码的时候就会遇到,到时候回来复习这个知识就好了
接口没有实际的工作代码,它的和抽象类的作用差不多,都是提要求
比如我们要向公司报销一些费用时需要发票对吧,这就是公司提的要求
我们要求别人登录时一定要发账号密码,这也是一种要求,不是口头的要求,是代码级别的要求,满足不了要求就无法往下运行的
定义接口 ¶
interface User{
}
这样就定义了一个空的接口,名叫User,像定义类的时候用class
关键字一样,定义接口就是用interface
关键字
接口可以定义常量和方法,但不能定义变量:
interface User{
const STATUS_ACTIVE = 1;
//public $name = ''; // 报错
public function say();
public function walk();
}
其中方法必然是空方法,不能有代码,这个和抽象类的抽象方法一样
实现接口 ¶
接口的工作代码都是空的,比如上面say方法和walk方法是个空的方法,这些空方法是等着被实现的,所以使用接口一般称为实现接口
class MyUser implements User{
public function say(){
echo 111;
}
public function walk(){
echo 111;
}
}
以上就是定义了一个MyUser的类,通过implements
关键字实现了User接口,还记得继承父类是用extends
关键字的吧,那实现一个接口就用implements关键字,这样换一换思维就行了
可以实现多个接口 ¶
class MyUser implements User1,User2{
//...
}
在implements后面的接口名称以,
号间隔隔开多个接口名称就可以了