PHP OOP界面的确切用法是什么?

时间:2013-01-11 11:04:20

标签: php oop abstract-class abstract

  

可能重复:
  Interface vs Abstract Class (general OO)
  Interface or an Abstract Class: which one to use?

我有一些关于interfaces in PHP的问题:

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

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

在哪些情况下使用abstract class代替interface会更合适?

interface的用途究竟是什么?

1 个答案:

答案 0 :(得分: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;
   }
 }

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