interface myI
{
public function myF();
}
class myTest implements myI
{
public function myF()
{
echo 'blah';
}
}
class myTest2 extends myTest
{
}
上面是一个简单的接口,需要类来实现myF功能。现在,如果一个类实现了该接口,那么该类的所有其他继承都不需要实现它,对吧?
我测试过:
$lists = new myTest2();
if($lists instanceof myI){
echo 'yes' . "<br />";
}
输出是。
然后我改变了
然后我改变了
class myTest2 extends myTest
到
class myTest2 extends myTest implements myI
即使myTest2没有实现myF功能,它仍然会输出“是”#。#。
为什么?
答案 0 :(得分:0)
它正在扩展已经实现接口的基类并定义方法。
答案 1 :(得分:0)
这是因为你的父类myTest涵盖了接口的实现。您可以覆盖myTest2中的实现。
答案 2 :(得分:0)
因为myTest2
从myF
继承了myTest
。实现界面myTest2
已经具有从myTest
继承的功能,因此需要检查界面的要求。