在PHP的面向对象中,接口可以继承接口。PHP类只能继承一个父类(单继承),但是接口可以实现多继承,可以继承一个或者多个接口。当然接口的继承也是和类的继承一样使用extends关键字,要多个继承的话只要用逗号把继承的接口隔开即可。
需要注意的是当你接口继承其它接口时候,直接继承父接口的静态常量属性和抽象方法,所以类实现接口时必须实现所有相关的抽象方法。
下面举例说明:
1.继承单接口
<?php
interface testA{
function echostr();
}
interface testB extends testA{
function dancing($name);
}
class testC implements testB{
function echostr(){
echo "接口继承,要实现所有相关抽象方法!";
echo "<br>";
}
function dancing($name){
echo $name."正在跳舞!";
}
}
$demo=new testC();
$demo->echostr();
$demo->dancing("模特");
//运行结果
/**
接口继承,要实现所有相关抽象方法
模特正在跳舞!
**/
2.继承多接口
<?php
interface testA{
function echostr();
}
interface testB{
function dancing($name);
}
interface testC extends testA,testB{
function singing($nickname);
}
class testD implements testC{
function echostr(){
echo "接口继承,要实现父接口所有相关方法!";
echo "<br />";
}
function dancing($name){
echo $name."正在跳舞!";
echo "<br />";
}
function singing($nickname){
echo $nickname."正在唱歌!";
}
}
$demo=new testD();
$demo->echostr();
$demo->dancing("模特");
$demo->singing("周杰伦");
//运行结果
/**
接口继承,要实现父接口所有相关方法!
模特正在跳舞!
周杰伦正在唱歌!
**/