java - 通用论证

标签 java interface polymorphism

我想创建一个 Java 接口(interface),其方法接受某个类型的所有子类型:

interface A{};

interface B{
  void method(A a);
}

我想要完成的是使方法(A a)的实现接受 A 的所有子类型(类似于返回类型多态性,但带有参数)。

这可能吗?

最佳答案

你已经完成了!

为了证明这一点,请尝试这样的事情:

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());

关于java - 通用论证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28941997/

相关文章:

c++ - std::find 包含指针的 vector

java - 将 LongStream 分成最大长度的子流

java - Maven : Packaging Jar on local filesystem, 但不在 WAR 文件中。

java - 如何避免接口(interface)的通用编译器警告

oop - 运行时多态性可以称为控制反转还是其他

haskell - 我想编写一个类似于Haskell中的`flip`的函数来摆脱lambda表达式。但我不能处理它的类型

java - 如何同时运行扫描仪和其他功能?

java - wildfly 数据源中的空闲超时后数据库连接未关闭

java - 关于java中ADT树的问题

java - 使用泛型返回列表的接口(interface)会导致警告