是否有可能限制Java接口的适用性?换句话说,如果我有一个类 A 和一个 Java 接口 I:是否可以强制 I 的实例也是 A 的实例?
或者,换句话说:如果我有类似的东西
public class B implements I {
}
然后我希望编译器抛出一个错误,如果 B 不是 A 的子类。
谢谢,
约亨
在类
A
和接口 I
中创建一个具有特殊名称的空方法或抛出方法,并具有相同的签名。就像是:
onlyClassAandItsSubclassesCanImplementI_markerMethod_doNotCallThis
这并不能真正阻止人们用
I
或其子类以外的东西来实现 A
,但它肯定会阻止人们意外地这样做。