接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,其中的方法只是定义,需要继承接口的类去实现接口定义的所有方法,本身不需要实现
接口中定义的所有方法都必须是公有,这是接口的特性。
//interface关键字定义接口
interface Demo{
const NAME='小明';
public function showName();
}
//接口继承,extends,多接口继承时,用,分隔:接口1,接口2,接口3
interface Demo1 extends Demo{
public function helloName();
}
//implements关键字实现接口,实现多接口:用,号分隔
class Demo2 implements Demo1{
//类必须实现接口定义的所有方法
public function showName(){
return self::NAME;
}
public function helloName(){
return '我的名字是'.self::NAME;
}
}
$demo2=new Demo2();
echo $demo2->showName();//小明
echo $demo2->helloName();//我的名字是小明