假设我有一个 Java 接口:
interface I {
void add(I foo);
}
,以及实现此接口的两个类 C 和 D。
有什么办法可以修改界面,我只能这样做:
C c = new C();
c.add(new C());
, 但不是
c.add(new D());
?
我在考试中有这个问题,但我唯一的想法是在方法的定义中使用instanceof运算符:
class C implements I {
public void add(I foo) {
if (foo instanceof C) {
System.out.println("instance of C");
} else {
System.out.println("another instance");
}
}
}
但是,我不知道如何修改界面以产生相同的效果。
谢谢