【问题标题】:Interface and its inheritances接口及其继承
【发布时间】:2015-07-05 00:28:00
【问题描述】:
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 函数,它仍然输出“yes”。

这是为什么呢?

【问题讨论】:

    标签: php oop inheritance interface


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        因为myTest2 继承自myTestmyF。实现接口,myTest2已经继承了myTest的功能,符合接口要求。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-13
          • 1970-01-01
          • 2021-04-10
          • 1970-01-01
          相关资源
          最近更新 更多