是否可以禁止直接实现界面?而不是这个类必须实现此接口的后代(如Traversable)。
答案 0 :(得分:0)
可以使用protected
关键字定义您的接口,因此只有同一个包中的类才能实现该接口。
答案 1 :(得分:0)
Traversable 是一个内部接口。它没有后代。只是当你在PHP用户区(他编写PHP代码的地方)时,你不能直接实现 Traversable ,而只能实现其中一个两个也是 Traversable :
但原因并不是你可以在PHP用户空间中控制一些后代关系,而只有 Traversal 是用户空间不可用的内部接口
除了接口之外,您可以做的是创建一个无法实例化的抽象类。您稍后会要求提供这种抽象类型:
abstract class Mineable
{
// ...
}
class MineAggregate extends Mineable
{
// ...
}
class Mine extends Mineable
{
// ...
}
那些没有接口,这是有充分理由的。 Traversable 示例可能误导了您,通常不应该在那里做过什么。另见:
很自然地,您也可以使用接口构建它,但任何接口都可以实现:
interface Mineable {} // this interface is empty just for the taste of it
interface MineAggregate extends Mineable
{
// ...
}
interface Mine extends Mineable
{
// ...
}
我不知道这是否是您正在寻找的,我必须承认,您的问题对我来说并不是很清楚。