2

我正在研究AbstractInterface之间的区别,我读了一些句子说

子类只能扩展单个抽象(或任何其他)类,而接口可以扩展或类可以实现多个其他接口。

当他说“子类只能扩展一个抽象(或任何其他)类”时,我理解,他的意思是:

class first
{
    public function Search()
    {
        return 'Hellow';
    }
}

abstract class first2 extends first
{

}

class second extends first2
{   

}

$ob = new second();
echo $ob->Search();

但是,我不明白他句子的其余部分,他说,“而一个接口可以扩展,或者一个类可以实现多个其他接口。”

有人可以解释他的最后一句话并添加一个代码示例吗?谢谢大家,祝你有美好的一天。

4

1 回答 1

5

您可以实现多个接口

interface C {
  public function method1();
}

interface D {
  public function method2();
}

class A implements C,D {

   //implement from interface C
   public function method1() {

   }
   //implement from interface D
   public function method2() {

   }
}

在这里,您将需要从接口 C 和 D 实现方法。您还可以在接口内扩展接口,就像普通类一样。

interface D extends C{}

当您需要一些常用方法时,它很有用。因此,您将“模式”写入接口,您希望基类实现哪些方法。

虽然 abstract 是单个扩展类,但您不能为其创建实例,只能扩展。当您想要一些具有通用功能的基类或稍后应该实现的抽象方法时,它很有用。

您可以随时在php.net 上阅读更多内容 - 接口

于 2012-05-26T07:58:18.483 回答