我想创建一个Java接口,其方法接受一个类型的所有子类型:
interface A{};
interface B{
void method(A a);
}
我想要实现的是使方法(A a)的实现接受 A的所有子类型(如返回类型多态,但带有参数)。
这甚至可能吗?
答案 0 :(得分:5)
你已经完成了!
要证明这一点,请尝试以下方法:
public class ThisA implements A {}
public class ThatA implements A {}
public class OtherA implements A {}
public class SubclassA extends OtherA {}
然后调用你的方法:
B b = new B {
public void method(A a) {
System.out.println("Called with "+a);
}
}
b.method(new ThisA());
b.method(new ThatA());
b.method(new OtherA());
b.method(new SubclassA());