1

可能重复:
接口与抽象类(通用 OO)
接口或抽象类:使用哪一个?

我对PHP 中的接口有一些疑问:

如果interface作为实现它的类的一种蓝图,为什么不使用它abstract parent classes呢?

interface在什么情况下使用 a而不是a 更合适abstract class

abstract class在什么情况下使用 a而不是 a更合适interface

究竟是什么用途interface

4

1 回答 1

3

一个很大的区别是你不能扩展多个抽象类,但你可以实现多个接口。

所以通过这种方式,对象如果实现了多个接口,就可以有多种用途,并且可以在各种不同的场景中使用。

所以为了让这更具体...

interface Wine{
   function isPeppery();
}

interface Dessert{
   function hasBerries(){
}

class PortWine implements Wine, Dessert{
   function isPeppery(){
     returns false;
   }
   function hasBerries(){
     returns true;
   }
}

class BlackForestCake implements Dessert{
   function hasBerries(){
      returns true;
   }
 }

通过这种方式,您可以在整个应用程序中拥有用于多种用途的对象。

于 2013-01-11T11:11:51.320 回答