【发布时间】:2011-06-03 16:03:58
【问题描述】:
我遇到了一些由同事编写的 PHP 代码(它没有用于任何用途)。基本上它是一个包含抽象方法的接口。然后我说这很愚蠢,并展示了坐在我旁边的另一位同事。我们笑了,但随后开始互相询问这是否可能,如果可能,是否真的有用。显然这是不可能的(见下面的例子),但如果可能的话,它会很有用。
你能想到这可能有用的情况吗?
<?php
interface Itest
{
abstract public function add(int $x, int $y);
}
abstract class ParentTest implements Itest
{
abstract public function add(int $x, int $y);
}
class test extends ParentTest
{
public function add(int $x, int $y)
{
return $x+$y;
}
}
$w = new test;
echo $w->add(5,8);
?>
【问题讨论】:
-
您到底在问我们什么?是抽象关键字还是标量类型提示?
-
我在问您是否认为拥有一个包含抽象方法的接口可能有用。您将拥有实现某个接口的抽象类。
-
那么你应该删除“int”类型的提示。您不能在 php 中输入标量提示。
-
您的示例甚至没有多大意义。接口上的方法已经是抽象的。你是说能够做一些类似 mixins 的事情吗?