接口及其继承

时间:2015-04-26 17:08:42

标签: php oop inheritance interface

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功能,它仍然会输出“是”#。#。

为什么?

3 个答案:

答案 0 :(得分:0)

它正在扩展已经实现接口的基类并定义方法。

答案 1 :(得分:0)

这是因为你的父类myTest涵盖了接口的实现。您可以覆盖myTest2中的实现。

答案 2 :(得分:0)

因为myTest2myF继承了myTest。实现界面myTest2已经具有从myTest继承的功能,因此需要检查界面的要求。