PHP中的接口实际上是做什么的吗?

时间:2014-08-14 21:17:16

标签: php oop interface

我一直在努力理解界面实际上做了什么。以下是一个非常明确的例子,其他初学者应该清楚。

可以确认(或不确认)界面什么都不做?它就像一个精心评论?此外,如果您在两个类中使用相同的接口,则必须定义函数,这可能是非干的?或者我错过了什么?

<?php
interface fax{
   public function dial();
   public function send();
   public function recieve();
}

interface printer{
   public function printBlack();
   public function printColor();
   public function printDraft();
   public function kick();
}

class printerFax implements fax, printer{
   public function dial(){ }
   public function send(){ }
   public function recieve(){ }
   public function printBlack(){ }
   public function printColor(){ }
   public function printDraft(){ }
   public function kick(){ }
 }

 $object = new printerFax;
 ?>

进一步的想法,更具体一点:界面实际上做了什么?我问这是否是一个评论 - 许多人暗示它是。我问它是不是干。

我已经找到了这个例子。 What does it mean to "program to an interface"?。我可以补充一下,这是我在几个小时的搜索中找到的唯一例子。

感谢您的回复。如果初学者到达这里,请转到问题383947.该示例不在PHP中,但它显示了功能。如果有人知道PHP中的一个例子,我将不胜感激。

尽管如此,这似乎仍然无法实现。函数会在程序编程中重复出现。

1 个答案:

答案 0 :(得分:0)

从这个回答:https://stackoverflow.com/a/219522/1187982

  

接口是一个抽象类(在Java这样的语言中)   没有多重继承,有时还有其他限制,   例如,单独的数据类型),旨在用作共同的   base可以访问许多类似行为的对象。从概念上讲,   不需要抽象,但通常是接口   将至少有一个抽象方法。接口是一种方法   你的程序与每个类似的类进行通信   具有不同的语义但具有相同的通用目的。

接口不提供任何功能上的好处,但它确实为您提供了保证任何继承类至少具有一定的通用性。