【发布时间】:2012-10-16 22:53:48
【问题描述】:
我有一个包裹 P 有
public interface Ipublic class S1 extends Foo implements I-
public class S2 extends Bar implements I。
现在我想禁止在P 之外实现I,但I 应该是公开的,因为我将它用于public method(I parameter)。
如何做到这一点?
是否有一些“包装最终模式”?
你有过这样的情况吗?
详情:
我知道使用抽象类的可能性只有包私有构造函数而不是接口I,但是S1 和S2 扩展了不同的类,所以我需要多重继承(因为模拟多重继承(参见例如 Effective Java item 18)在这里不起作用)。
【问题讨论】:
-
如果你不需要包外的接口,你可以只设置接口包范围:接口I,而不是公共接口I。
-
@karakuricoder:我需要包外的接口(请参阅我对 Ian Armit 的回答的评论)。
标签: java interface package visibility multiple-inheritance